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