typedef定義別名

2021-08-07 03:28:41 字數 632 閱讀 1207

問題:

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可以增強程式的可讀性,以及識別符號的靈...