3120781247 发表于 2022-5-10 22:46:24

谁能告诉我这表示什么!!!

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

那个*(*p)的最外那个*表示什么意思?

ba21 发表于 2022-5-10 23:00:58

假如(*p)整个看成一个变量p ,
*(*p)就是*p咯。
指向 数组指针 的指针

临时号 发表于 2022-5-10 23:28:08

表示这是一个指针

山迟ovo 发表于 2022-5-11 06:26:39

本帖最后由 山迟ovo 于 2022-5-11 06:30 编辑

首先,这是一个指针数组。
char *array = {"Fishc", "Five", "Star", "Good", "WoW"};   //这条定义并初始化数组
char *(*p) = &array;   //p是指向数组arrray的指针,并且这条是定义形式,括号中的*表示p是一个指针,括号外的char *表示p指向的数据类型。
array第0个元素类型为char *,所以在定义p的时候要加两个*

豆嘉木 发表于 2022-5-11 10:06:28

本帖最后由 豆嘉木 于 2022-5-11 10:07 编辑

简单点说就是,char *(*p)=&array的意思就是char *((*p))=&array

逆鳞丶樱之羽 发表于 2022-5-11 10:35:31

char* (*p) -> 指针数组指针,其为指针
是类型为char* 的指针,
p是指向一个存储5个指针数据的数组的指针。

dysow 发表于 2022-5-11 14:45:39

char *array = {"Fishc", "Five", "Star", "Good", "WoW"};
        char *(*parray) = &array;
       
        printf("array is %s\n",*(*parray));
        printf("array is %s\n",*(*parray+1));
        printf("array is %s\n",*(*parray+2));
        printf("array is %s\n",*(*parray+3));
        printf("array is %s\n",*(*parray+4));

不懂就执行了一把,parray就是个指向了含有5个指针的数组啊。
页: [1]
查看完整版本: 谁能告诉我这表示什么!!!