char * token [32]和char token [32]之间的区别

时间:2012-12-20 22:29:46

标签: c pointers char

这可能听起来非常愚蠢和愚蠢。我想了解

之间的区别
char *token[32];

char token[32];

char token [32]将token声明为可包含32个字符的字符数组。

在char * token [32]的情况下,令牌包含32个字符指针。这些指针指向什么?或者更具体地说,用户有责任为指针指向的内容分配内存。

2 个答案:

答案 0 :(得分:7)

  

现在char *token[32]声明令牌是指向可包含32个字符的字符数组的指针。

没有。它声明token是一个包含32个char指针的数组。换句话说,在第一种情况下token包含32个字符,在第二种情况下,它包含32个指针。

如果要声明指向包含32个字符的字符数组的指针,则应编写

char arr[32];
char (*token)[32] = &arr;

答案 1 :(得分:4)

char *token[32];

是一个包含32个char指针的数组。即阵列可以用作:

token[0]=p1;
token[1]=p2;
.....

其中p1和p2可以是char[]char*类型。

这篇文章可以帮助您理解除了提出的更多相关内容:

C pointer to array/array of pointers disambiguation