是什麼我一直使用的第一對於char指針數組C變量聲明
char *a[10];
和
char *(a[10]);
之間的差,但現在我發現代碼中使用的第二。因爲我不確定它是否是相同的東西,所以我打印sizeof()兩者都返回80(64位操作系統),所以我傾向於相信兩者是相同的(一個字符指針數組)。
但是,因爲我找不到任何解釋在線或任何使用*([])語法,我正在尋找一些確認。
由於
是什麼我一直使用的第一對於char指針數組C變量聲明
char *a[10];
和
char *(a[10]);
之間的差,但現在我發現代碼中使用的第二。因爲我不確定它是否是相同的東西,所以我打印sizeof()兩者都返回80(64位操作系統),所以我傾向於相信兩者是相同的(一個字符指針數組)。
但是,因爲我找不到任何解釋在線或任何使用*([])語法,我正在尋找一些確認。
由於
兩個是等效的且代表指針的10元件陣列char
。
與char (*a)[10]
對比,它是指向char
的10元素數組的指針。
如果有疑問,可以使用cdecl
來解讀C聲明。在Unix上它通常作爲命令行工具提供。還有一個online version。
char *a[10];
和char *(a[10]);
是一樣的。爲了說清楚,可以這樣說,char *a[10];
是pointer array
的10,後來是10的數組,其中all are pointers
!你會發現,兩者都是以不同的方式說出來的。