- C程序的流程:預處理-編譯-鏈接-加載運行。變量的初始化都在加載運行這一部分。特別地,全局變量的初始化在調用main函數之前。
%x表示用小寫字母輸出16進制整數,%X表示用大寫字母輸出16進制整數,%o表示輸出8進制整數,%O沒有含義。需要注意,上述三種方式,都不會添加16進制的0x前綴和8進制的0前綴。但是加上#就會添加對應的前綴,%#x會添加0x,%#X會添加0X,%#x會添加0。- 賦值運算符是右結合。(
=,*=這種) - 只有在初始化數組的時候提供初始化列表,才能省略第一維(最左邊的維度)。其它維度任何時候都不能省略。
scanf("%d", &x);,即使輸入的是021,也是忽略前綴0,這就是十進制的21,不是八進制。- 雖然説歷史上函數原型和函數原型不是一個東西,但是貌似這門課可以認為函數原型就是指函數聲明。課件上説的是函數原型聲明。
- 補碼最主要的作用是:簡化加減法運算。
- 靜態變量
static:
- 靜態全局變量:作用域限制在所在源文件中,別的文件無法通過
extern關鍵字來訪問它。和其他全局變量一樣,在調用main函數之前就初始化了。 - 靜態局部變量:只初始化一次,但作用域不變,不會隨着函數調用結束銷燬。可以用來實現有記憶的函數。但是它也是在第一次執行到它的定義語句時初始化。
extern用於聲明,而不是定義,也就是並不會創建一個新的變量/函數。- 如果想要實驗變量初始化的時機,可以寫
int a = printf("a\n");這種語句。 - C語言可以同時編譯多個文件,但是有且只能有一個main函數,dev裏面要創建一個項目才能編譯多個文件。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。