几个有关小甲鱼代码的简单指针问题
#include <stdio.h>int main()
{
char *array = {"FishC", "Five", "Star", "Good", "WoW"};
char *(*p) = &array;
int i, j;
printf("%p\n",p);
printf("%p\n",*p);
for (i = 0; i < 5; i++)
{
for (j = 0; (*p) != '\0'; j++)
{
printf("%c ", (*p));
}
printf("\n");
}
return 0;
}
小甲鱼代买中这里第六行中 定义的指针是什么意思 为什么这么定义?
是指这个数组指针的指针吗
指针p存放的是谁的地址
p和*p存放的地址为什么是相同的??
*array 定义的是一个一维指针数组,*array 表示 array 是一个指针; 表示指针指向的对象的类型是具有五个元素的数组,每个元素都是指针,分别指向5个字符串
p 是指向 array 的指针, *p = *p + 0 = *p = array,array 与 array 是等价的,于是,p 与 *p 也是等价的,都是指向 array 的 本帖最后由 minamikotori 于 2020-12-22 23:46 编辑
风过无痕1989 发表于 2020-12-22 00:46
*array 定义的是一个一维指针数组,*array 表示 array 是一个指针; 表示指针指向的对象的类型是具有 ...
array 可以看作是(array)吗是array这个数组的指针吗
那(*p)() 该怎么理解呢
风过无痕1989 发表于 2020-12-22 00:46
*array 定义的是一个一维指针数组,*array 表示 array 是一个指针; 表示指针指向的对象的类型是具有 ...
还是说array指得是 p指向指针数组然后 数组里面的指针分别指向了array里面的每个字符? minamikotori 发表于 2020-12-22 23:51
还是说array指得是 p指向指针数组然后 数组里面的指针分别指向了array里面的每个字符?
“array指得是 p指向指针数组”,这可不一定,要看你怎么定义的指针
后面的说法没有错 风过无痕1989 发表于 2020-12-22 23:56
“array指得是 p指向指针数组”,这可不一定,要看你怎么定义的指针
后面的说法没有错
多谢大佬{:10_275:} minamikotori 发表于 2020-12-22 23:59
多谢大佬
不必客气
页:
[1]