以圖明志

C/C++編程語言

C語言printf()格式化輸出控制

C語言常查閱的資料
printf()函數是格式化輸出函數,一般用于向標準輸出設備按規定格式輸出信息。在編寫程序時經常會用到此函數。其中格式化字符串包括兩部分內容:一部分是正常字符,這些字符將按原樣輸出。另一部分是格式化規定字符,以"%"開始,后跟一個或幾個規定字符,用來確定輸出內容格式。

C/C++編程語言

[專題] 漫談C指針:C語言變量的實質

可以把內存看成電影院座位
要理解C指針,我認為一定要理解C中“變量”的存儲實質,所以我就從“變量”這個東西開始講起吧。內存只不過是一個存放數據的空間,就好像我的看電影時的電影院中的座位一樣。電影院中的每個座位都要編號,而我們的內存要存放各種各樣的數據,當然我們要知道我們的這些數據存放在什么位置吧。

C/C++編程語言

[專題] 漫談C指針:變量賦值與取地址

簡單理解變量的存儲
你當然知道個兩個語句是將30存入i變量的內存空間中,將“t”字符存入a變量的內存空間中。我們可以利用這樣的形象來理解:……接下來我們來看看&i是什么意思?是取i變量所在的地址編號嘛。我們可以這樣讀它:返回i變量的地址編號。以上圖的內存映象為例,屏幕上顯示的不是i值30,而是顯示i的內存地址編號6了。

C/C++編程語言

[專題] 漫談C指針:指針是什么東西

其實指針就是個變量
指針,想說弄懂你不容易??!我們許多初學指針的人都要這樣感慨。我常常在思索它,為什么呢?其實生活中處處都有指針,我們也處處在使用它。有了它我們的生活才更加方便了。沒有指針,那生活才不方便。不信?你看下面的例子。這是一個生活中的例子:比如說你要我借給你一本書,我到了你宿舍,但是你人不在宿舍。

C/C++編程語言

[專題] 漫談C指針:指針與數組

用指針訪問數組元素
看pa = a,即數組名賦值給指針,以及通過數組名、指針對元素的訪問形式看,它們并沒有什么區別,從這里可以看出:數組名其實也就是指針。難道它們沒有任何區別?有,請繼續??梢钥闯?,這段代碼也是將數組各元素值輸出。不過,你把循環體{}中的pa改成a試試。你會發現程序編譯出錯,不能成功。

C/C++編程語言

[專題] 漫談C指針:聲明指針常量

數組名就是常量指針
請再看下面的代碼:pa++ ; /*注意這里,指針值被修改*/這時候的代碼能成功編譯嗎?不能。因為pa指針被定義為常量指針了。這時與數組名a已經沒有不同。這更說明了數組名就是常量指針。但是……

C/C++編程語言

[專題] 漫談C指針:從const int i說起

符號常量與指針
有了const修飾的ic 我們不稱它為變量,而稱符號常量,代表著20這個數。這就是const 的作用。ic是不能在它處重新賦新值了。認識了const 作用之后,另外,我們還要知道格式的寫法。有兩種:const int ic = 20; 與 int const ic = 20; 它們是完全相同的。

C/C++編程語言

[專題] 漫談C指針:const int *pi的語義

注意const修飾的對象
我先來說說const int *pi是什么作用 (當然int const *pi也是一樣的,前面我們說過,它們實際是一樣的)??闯鰜砹藳]有,pi的值是可以被修改的。即它可以重新指向另一個地址的,但是,不能通過*pi來修改i2的值。這個規則符合我們前面所講的邏輯嗎?當然符合了。

C/C++編程語言

[專題] 漫談C指針:參數傳遞的三道題目

值傳遞、地址傳遞與引用傳遞
我們都知道:C語言中函數參數的傳遞有:值傳遞、地址傳遞、引用傳遞這三種形式。題一為值傳遞,題二為地址傳遞,題三為引用傳遞。不過,正是這幾種參數傳遞的形式,曾把我給搞得暈頭轉向。我相信也有很多人與我有同感吧?后面部分請讓我逐個地談談這三種傳遞形式。

C/C++編程語言

[專題] 漫談C指針:參數的值傳遞

實參與形參
原來,其實函數在調用時是隱含地把實參a、b 的值分別賦值給了x、y,之后在你寫的Exchg1函數體內再也沒有對a、b進行任何的操作了。交換的只是x、y變量。并不是a、b。當然a、b的值沒有改變啦!函數只是把a、b的值通過賦值傳遞給了x、y,函數里頭操作的只是x、y的值并不是a、b的值。這就是所謂的參數的值傳遞了。

C/C++編程語言

[專題] 漫談C指針:參數的地址傳遞

參數只是傳遞地址
這樣,有了頭兩行的隱含賦值操作。我們現在已經可以看出,指針px、py的值已經分別是a、b變量的地址值了。接下來,對*px、*py的操作當然也就是對a、b變量本身的操作了。所以函數里頭的交換就是對a、b值的交換了,這就是所謂的地址傳遞(傳遞a、b的地址給了px、py),你現在明白了嗎?

C/C++編程語言

[專題] 漫談C指針:參數的引用傳遞

引用傳遞與值傳遞的區別
我們先看Exchg3函數的定義處Exchg3(int &x, int &y)。參數x、y是int的變量,調用時我們可以像值傳遞(如: Exchg1(a, b); )一樣調用函數(如: Exchg3(a, b);)。但是x、y前都有一個取地址符號“&”。有了這個,調用Exchg3時函數會將a、b 分別代替了x、y了,我們稱:x、y分別引用了a、b變量。

C/C++編程語言

[專題] 漫談C指針:回顧指針概念

一個指針的存儲實例
早在前面我就對指針的實質進行了闡述。今天我們又要學習一個叫做“指向另一指針地址”的指針。讓我們先回顧一下指針的概念吧??吹經]有:短整型指針變量pi的值為5,它就是i變量的內存起始地址。所以,這時當我們對*pi進行讀寫操作時,其實就是對i變量的讀寫操作。

C/C++編程語言

[專題] 漫談C指針:指向另一指針地址的指針

只是指向指針的指針而已
在前文中,我們看到,指針變量本身與其它變量一樣也是在某個內存地址中的,如pi的內存起始地址是9。同樣的,我們也可能讓某個指針指向這個地址。第一句:short int **ppi; —— 聲明了一個指針變量ppi,這個ppi是用來存儲(或稱指向)一個short int * 類型指針變量的地址。

C/C++編程語言

[專題] 漫談C指針:一個指針應用實例

學會調試指針傳遞的方法
上面代碼,你認為會是輸出什么呢?運行試試。唉!怎么輸出的是:沒有找到!而不是“找到了,……”。明明a值為’d’,而str字符串的第四個字符是’d’,應該找得到呀!再看函數定義處:void find1(char array[], char search, char *pa)看調用處:find1(str, a, p); 依我在前面的分析方法,函數調用時會對每一個參數進行一個隱含的賦值操作。

C/C++編程語言

[專題] 漫談C指針:函數名其實也是指針

函數指針變量的聲明
就象某一數據變量的內存地址可以存儲在相應的指針變量中一樣,函數的首地址也以存儲在某個函數指針變量里的。這樣,我就可以通過這個函數指針變量來調用所指向的函數了。在C系列語言中,任何一個變量,總是要先聲明,之后才能使用的。那么,函數指針變量也應該要先聲明吧?那又是如何來聲明呢?
1 / 2 首頁 < Prev 1 2 Next > 尾頁 頁碼:
云南快乐十分走势一定牛 22选5好运三技巧 融资买入的股票怎么 佳永配资 今晚20选五开奖结果 四肖选一肖www949488 股票技术分析10版 摇钱树论坛平特一肖资料 幸运飞艇单双大小经验 虚拟盘配资私了 重庆快乐10分开奖走势图