基礎C語言知識串串香8 指標精髓

2021-10-04 05:10:20 字數 2430 閱讀 3121

其中%p表示輸出乙個指標,就是指標變數(其存放的那個位址),可以理解為輸出乙個位址。

3.2 int *p1, p2;

等同於int *p1; int p2;int *p="linux",其不能改變*p,因為」linux"是乙個常數。

3.3 (**規範性)在定義指標時,同時賦值為null,在用指標時,先判斷它是不是null。尤其是在malloc申請記憶體使用,並在使用完進行釋放free(p);後一定要讓p=null;

3.4 c/c++中對null的理解

#ifdef _cplusplus //定義這個符號就表示當前是c++環境

#define null 0 //在c++中null就是0

#else

#define null (void*)0 //在c中null是強制型別轉換為void*的0

#endif

3.5、修飾詞:const(修飾變數為常量,應該理解為不應該去變它,當作常量,而並非永遠不能改變,當然要看具體執行環境,在gcc中,const就可以採用指標方式修改,但是在在vc6.6++中就不可以修改):其雖然是當作常數,但是仍然存放在資料段中,用指標仍然可以改變值。

第一種:const int p;

第二種:int const p;

第三種:int const p;

第四種:const int const p;

3.6、陣列int a[2];

其中a是指首元素的首位址,&a是整個陣列的收位址(陣列指標,其這個指標指向乙個陣列),他們的值是一樣的,但意義不一樣,可以參照int a;int *p = &a;來理解。陣列和指標天生姻緣在於陣列名;

int a[3]; 

int *p = a;

是可以的,但是int p = &a;就會報錯,儘管他們的值是一樣的,但意義不一樣,所以是不允許的,除非強制型別轉換。在訪問時是a[0],其實編譯器會把它變成(a+0)的方式,只是用a[0]看起來更方便,封裝了一下而已,實質還是指標。

3.7、siziof()是乙個運算子,測試所佔記憶體空間,如果有int a[100];sizeof(a) = 400;

與strlen()要有所區別,他是測字串實際長度的,不包括『\0『,如果給strlen傳的引數不是乙個字串,則它會一直去找,直到找到第乙個『\0』,然後再計算其長度。如char a = "chen";char *p=a;strlen(p)=4;

3.8、當陣列作為乙個形參時,其實參是乙個陣列名(也可以是指標,其本質就是指標),意義是首元素的首位址,則傳過去只影響形參的第乙個元素。形引數組的位址被實參陣列位址所繫結;實參的大小會丟失,所以往往會傳乙個int num大小進去。

3.9、結構體做為形參時,應盡量用指標/位址方式來傳,因為結構體變數有時會佔很大,效率很低。

3.10、指標的指標。如果int *p = &u; p存放的是變數u的位址,而&p的意思就是變數p本身的位址。

3.11、當要傳參的個數比較多時,我們可以打包成乙個結構體,傳參的個數越多,其開銷就更大.

3.12乙個函式作用其實就是輸入輸出,引數可以作為輸入,返回可以作為輸出,但是當要返回多個輸出時,這時候就不夠用了,所以常常返回值用來判斷程式又沒有出錯,而引數就是當作輸入輸出的,輸入時可以加const表示它沒必要去修改,而輸出都是指標,因為要改變它的值,只能採用位址傳遞這種方式。比如:

char* strcpy(char *dest,const char *src);
基礎c語言知識串串香(1)

基礎c語言知識串串香(2)

基礎c語言知識串串香(3)

基礎c語言知識串串香(4)

基礎c語言知識串串香(5)

基礎c語言知識串串香(6)

基礎c語言知識串串香(7)

**********=我是華麗的分割線**********=

嵌入式linux&arm

或瀏覽器開啟:

基礎C語言知識串串香6 記憶體大話題

1.0 記憶體就是程式的立足之地,體現記憶體重要性。1.1 記憶體理解 記憶體物理看是有很多個bank 就是行列陣式的儲存晶元 每乙個bank的列就是位寬,每一行就是words,則儲存單元數量 行數 words 列數 位寬 bank的數量 通常也用m w的方式來表示晶元的容量 或者說是晶元的規格 組...

基礎C語言知識串串香3 size t型別

c語言標準規定size t是一種無符號整數型別,編譯器可以根據作業系統的不同而用typedef來定義不同的size t型別,即在不同的作業系統上所定義的size t 可能不一樣。例如在32位作業系統上可以將size t定義為unsigned int型別,而在64位作業系統上則可以定義為unsigne...

基礎C語言知識串串香1 基本資料型別

到c99目前為止,c語言為我們提供了12個相關的資料型別關鍵字來表達各種資料型別。如表所示,k rc提供了7個,c891,c90 新増了2個,c99新増了3個。c的基本資料型別 整型是c語言最基本的資料型別,它以二進位制編碼的方式進行儲存,具體可以包括字元 短整型 整型和長整型等。例如,整數2的二進...