這可能聽起來很無聊和stupid.I我tyring瞭解差異*令牌[32]和炭令牌[32]
char *token[32];
和
char token[32];
字符標記之間的區別[32]將令牌聲明爲可包含32個字符的字符數組。
在char *標記[32]的情況下,標記包含32個字符指針。這些指針指向什麼?或者更具體地說,用戶有責任爲指針指向的內存分配內存。
這可能聽起來很無聊和stupid.I我tyring瞭解差異*令牌[32]和炭令牌[32]
char *token[32];
和
char token[32];
字符標記之間的區別[32]將令牌聲明爲可包含32個字符的字符數組。
在char *標記[32]的情況下,標記包含32個字符指針。這些指針指向什麼?或者更具體地說,用戶有責任爲指針指向的內存分配內存。
char *token[32];
是32個字符指針數組。即該陣列可被用作:
token[0]=p1;
token[1]=p2;
.....
其中p1和p2可以是char[]
或char*
類型。
這篇文章可以幫助你理解比其他問一些相關的東西:
現在
char *token[32]
將令牌聲明爲可包含32個字符的字符數組的指針。
不,它聲明token
是32個字符指針的數組。換句話說,在第一種情況下,token
包含32個字符,在第二種情況下,它包含32個指針。
如果你想聲明一個指針,舉行32個字符的字符數組,你會寫
char arr[32];
char (*token)[32] = &arr;
+1數組不,我放棄了最後一對decl(實際上是* last * decl,這比人們首先給予的分數更重要)。我其實很喜歡閱讀幾乎所有的答案= P – WhozCraig
@WhozCraig謝謝:) – 2012-12-20 22:36:34
一個是指向'char'的數組,一個是'char's – Cornstalks