C 容易出錯的點

2021-08-17 14:33:42 字數 882 閱讀 5839

1、

c風格字串的兩種形式:

1、char a = ; 手動新增結束符『\0』

2、char a = "abv";  預設新增'\0'

2、sizeof

返回的值表示的含義如下(單位位元組):

陣列——

編譯時分配的陣列空間大小;

指標——

儲存該指標所用的空間大小(儲存該指標的位址的長度,是長整型,應該為4);

型別——

該型別所佔的空間大小;

物件——

物件的實際占用空間大小;

函式——

函式的返回型別所佔的空間大小。函式的返回型別不能是

void。3、

struct link 

node;

在c語言中【】裡必須為必須為struct link *next; c++中可以為link *next.

4、

int i = 3; printf("%d %d", ++i, ++i)
函式的引數是從右向左壓棧的,輸出時從棧頂開始,相當於: int i = 3;  ++i; ++i; printf("%d,%d",i,i);所以是 5,5;

再舉乙個例子,int i = 1; printf("%d,%d", i += 2, i *= 3); 在輸出i之前先進行了i *= 3和 i += 2;最終i = 5;所以結果是5,5;

5、常量指標和指標常量:

const char *p

char const *p

上面兩者一樣,p是乙個指向字元常量的指標,p所指向記憶體位址中的內容是不可以更改的

char * const p

表示常指標,即該指標指向的位址是不可以改變的

void main(void)

C語言中最容易出錯的知識點

1 ifdef 識別符號 定義了巨集就執行語句一 語句一 else 語句二 endif2 ifndef 識別符號 沒有定義巨集就執行語句一 語句一 else 語句二 endif3 if 表示式 表示式成立就執行語句一 語句一 else 語句二 endif 正確的結果應該是 7 3 2 1 16 根據...

容易出錯的 if 語句

下面列舉幾個容易出錯的if語句例項,如果後續還有新的發現,還會繼續更新!int n 5 if n 0 printf 值為正 初次執行,感覺一切正常,沒有錯誤,這時我把n的值改為 5重新編譯後,結果還是為正。這是為什麼?仔細一瞧,我們發現在 n 0 後面我們多加了個分號!原因 只有乙個分號的語句叫做空...

c語言中容易出錯的幾個地方

1 常量與變數判斷是否相等時,一般把常量寫在前面,這樣若少寫乙個 會出現錯誤提示,方便改正。2 判斷浮點數是否相等時,不允許用 因為有些小數部分因為二進位制轉換導致不能儲存準確的值。一般設定乙個精度來做判斷,如果兩數之差的絕對值處於精度之外的話,我們可以看做兩個數相等。const double ex...