天天看點

初始c語言的常見錯誤和盲區

@​​TOC​​

一、前置++與後置++

我們先看兩個例題來感受下

初始c語言的常見錯誤和盲區

第一個先來後置++,大體使用上我認為後置++的頻率比前置要高

後置++ 先執行表達式 等表達式執行完後 再++

也就是先使用 後++

這裡面b=a++ 可以拆分成 b=a a=a+1

而來到c的時候 a的值已經加1了 即c=11

初始c語言的常見錯誤和盲區

b=++a 可以拆分成 a=a+1 b=a 即b=11

這裡是先加加 在使用

c=a a的值已經在上面加1了 即c=11

二、static的使用

1.修飾局部變量

初始c語言的常見錯誤和盲區

結果不難看出是 2 2 2 2 2a屬于局部變量在棧區 函數使用後就會被銷毀 是以每次調用 a時a的值都會被重置成為1 a=a+1 最終每次輸出都是2

初始c語言的常見錯誤和盲區

現在函數中的a被static修飾 成為了靜态區中的

是以這次調用a的值不會随着函數調用結束而銷毀

第一次a的結果為 2 依次增加1

最終結果是 2 3 4 5 6

2.修飾全局變量

初始c語言的常見錯誤和盲區
初始c語言的常見錯誤和盲區

extern 用來聲明外部符号

定義兩個源檔案

當運作時 全局變量的值被列印出來

初始c語言的常見錯誤和盲區
初始c語言的常見錯誤和盲區

當用static修飾全局變量時 我們發現會報錯

正常情況下使用外部聲明(extern)就可以使用了

全局變量具有外部連結屬性 ,而當用static修飾後,外部連結屬性就會變成内部連結屬性 其他的源檔案就無法通過連結找到

即此時全局變量隻能在本身源檔案内部使用

3.修飾函數

初始c語言的常見錯誤和盲區
初始c語言的常見錯誤和盲區

這裡依然定義兩個源檔案

找到add函數 并得出結果8

初始c語言的常見錯誤和盲區
初始c語言的常見錯誤和盲區

4.總結

繼續閱讀