2512086295 发表于 2022-2-7 23:44:23

关于练习题中*(*P)[5]=&array;

char *array={"FishC","Five","Star","Good","WoW"};
char *(*p)=&array;


char*array={"FishC","Five","Star","Good","WoW"};
char(*p)=&array;

有什么区别

jhq999 发表于 2022-2-8 06:26:13

char *(*p)字符指针的二维数组指针
char(*p)字符的二维数组指针

傻眼貓咪 发表于 2022-2-8 08:10:17

本帖最后由 傻眼貓咪 于 2022-2-8 08:12 编辑

你的代码:
char *array = {"FishC", "Five", "Star", "Good", "WoW"};
char (*p) = &array; 好像不正确,正确应该是:char array = {'F', 'H', 'S', 'G', 'W'};
char (*p) = &array;

番杰 发表于 2022-2-9 13:26:24

char *array 中,array是一个数组,它含有5个char*类型的数据;
char *(*p)中,p是一个指针,它指向的是一个含有5个char*类型的数据的数组;
而在char(*p)中,p是一个指针,它指向的是一个含有5个char类型的数据的数组;

从上面就能看出:
一个是指向char *类型数组,即char *;
一个是指向char类型数组,即char ;

所以第二个中:char(*p)=&array;这条语句是不对的,因为数据类型不同。
页: [1]
查看完整版本: 关于练习题中*(*P)[5]=&array;