問題:
typedef int arr5[5];
typedef arr5 * p_arr5;
typedef p_arr5 arrp10[10];
arr5 togs;//togs是具有5個元素的int陣列?為什麼?
p_arr5 p2;//p2是乙個指標,指向具有5個元素的int陣列
arrp10 ap;//ap是具有10個元素的指標陣列,每個指標指向具有5個元素的int陣列
從網上看到的一種比較好理解的解釋:
首先把typedef去掉,看定義的變數(識別符號)的型別;
加上typedef就是用識別符號,
來表示 不加typedef定義 同名變數(識別符號)的,
那個變數(識別符號)的型別;
//例如,去掉typedef
int arr5[5]; //arr5 是個 int[5]; 即 5個元素的整型陣列
//加上 typedef
typedef int arr5[5]; //arr5 就是 int[5] 這種型別的另乙個名字,
//也就是說 arr5,就是5個元素的整型陣列,這種型別
剩下的再依次理解。 typedef為指標定義別名
對指標和函式指標定義別名涉及到優先順序,檢視 c語言宣告的優先順序 那篇 1 c語言typedef的用法詳解 biancheng.net typedef char char20 20 char20是型別char 20 的別名。它是乙個長度為 20 的陣列型別 char20 a1,a2,a3,a4 c...
typedef 和 define定義別名的區別
typedef與 define 的區別 一 typedef的用法 typedef常用來定義乙個識別符號及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配記憶體空間,例項像 typedef int int typedef int array 10 typedef int pint typede...
typedef 和 define定義別名的區別
一 typedef的用法 typedef常用來定義乙個識別符號及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配記憶體空間,例項像 typedef int int typedef int array 10 typedef int pint typedef可以增強程式的可讀性,以及識別符號的靈...