【发布时间】:2012-05-09 12:34:41
【问题描述】:
【问题讨论】:
【问题讨论】:
char (*p)[4]; -- 将 p 声明为指向 char 数组 4 的指针。char *p[4]; -- 将 p 声明为指向 char 的指针的数组 4。【讨论】:
char (*p)[4];: p 是指向长度为 4 的 char 数组的指针。
char [4]
points to |
char [4] v
+------+ +------+------+------+------+
| p |------------>| | | | |
+------+ +------+------+------+------+
char char char char
p will point to a char [4] array. Array is not created.
p is intended to be assigned at address of a char [4]
char *p[4];:p是一个长度为4的数组,数组的每个位置都是一个指向char的指针
+------+------+------+------+
p | | | | |
an array +------+------+------+------+
itself | | | |
v v v v
char* char* char* char*
p is an array and will be allocated in stack (if automatic)
【讨论】:
char (*p)[4] 的情况下,重要的是要注意声明不会创建数组,只是一个指向数组的指针。