Можно создать дубликат:
C pointer to array/array of pointers disambiguationЧто означает обозначение указателя символа?
Как char (*p)[4];
отличается от char *p[4];
?
Можно создать дубликат:
C pointer to array/array of pointers disambiguationЧто означает обозначение указателя символа?
Как char (*p)[4];
отличается от char *p[4];
?
char (*p)[4];
- объявить р как указатель на массив 4 полукокса.char *p[4];
- объявить p как массив 4 указателя на символ.char (*p)[4];
: p
представляет собой указатель на массив char
длины 4.
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)
Как использовать этот «p как указатель на массив 4 символа» –
, но вы хотите! –
Is * p [0] = "Hello"; или * p [0] = (char *) malloc (10); допустимо для первой декларации –