C語言深度剖析

2021-09-29 13:42:46 字數 1470 閱讀 7391

什麼是資料型別?資料型別是建立變數的模具

資料型別是建立變數的模具

型別的本質:資料型別可理解為固定記憶體大小的別名

資料型別的本質是固定記憶體大小的別名

變數本質

變數是一段實際連續儲存空間的別名

型別和變數的關係

$ vim program.c

#include int main()

$ gcc program.c -o program

$ program.exe

1, 1

2, 2

4, 4

$ vim program.c

#include //自定義型別(別名)

記憶體分配型別

auto

#include int g = 0;

int main()

static

register

#include register int m = 0;

int main()

$ gcc program.c -o program

λ gcc program.c -o program

program.c:3:14: error: register name not specified for 'm'

register int m = 0;

小結

#include int main()

#include int main()

$ gcc program.c -o program

$ program.exe

61ff2c

407020

C語言深度剖析

c語言深度剖析 1,編譯器通常不為普通const唯讀變數分配儲存空間,而是將他們儲存在符號表中,使得它成為乙個編譯期間的值,沒有了儲存與讀記憶體的操作,使得它的效率更高。2,const int p p可變,p指向的物件不變。int const p p可變,p指向的物件不可變 int const p ...

C語言深度剖析 列舉

列舉與 define巨集的區別 1 define 巨集常量是在預編譯階段進行簡單替換。列舉常量則是在編譯的時候確定其值。2 一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量。3 列舉可以一次定義大量相關的常量,而 define 巨集一次只能定義乙個。列舉能做到事,define 巨集能不能都做到...

《C語言深度剖析》筆記

c語言深度剖析 筆記 1.在c語言中,凡不加返回值型別限定的函式,就會被編譯器作為返 回整形處理。2.register 變數必須是乙個單個的值,並且其長度應小於或等於整型 的長度。而且 register 變數可能不存放在記憶體中,所以不能用取 址運算子 來獲取 register變數的位址。3.int...