这听起来可能很愚蠢和愚蠢。我很想了解两者之间的区别
char *token[32];
和
char token[32];
char token[32] 将 token 声明为可以包含 32 个字符的字符数组。
在 char *token[32] 的情况下,token 包含 32 个字符指针。这些指针指向什么?或者更具体地说,用户有责任为指针指向的内容分配内存。?
现在
char *token[32]
将 token 声明为指向可以包含 32 个字符的字符数组的指针。
不,它声明token
为一个由 32 个字符指针组成的数组。换句话说,在第一种情况下token
保存 32 个字符,在第二种情况下,它保存 32 个指针。
如果你想声明一个指向包含 32 个字符的字符数组的指针,你会写
char arr[32];
char (*token)[32] = &arr;
char *token[32];
是一个由 32 个字符指针组成的数组。即该数组可以用作:
token[0]=p1;
token[1]=p2;
.....
其中 p1 和 p2 可以是char[]
或char*
类型。
这篇文章可能会帮助您了解除所问内容之外的一些更相关的内容: