这可能听起来很无聊和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