猪猪虾 发表于 2020-9-23 10:23:11

c语言,打印语句里面*(*p + i)怎么理解

本帖最后由 猪猪虾 于 2020-9-23 10:49 编辑

#include <stdio.h>
#include <string.h>
//************************指针数组与数组指针*************************
//数组指针:指向的是数组地址,不是数组的第一个元素地址
int main()
{
   
   int temp =   {1,2,3,4,5};
   int (*p) = &temp;//取数组的地址给数组指针
   int i;
   for (i = 0;i<5;i++)
   {
                   printf("%d\n",*(*p + i));
   }
   return 0;
}



sunrise085 发表于 2020-9-23 10:26:57

本帖最后由 sunrise085 于 2020-9-23 10:55 编辑

看看我之前回答的一个关于数组指针的问题
*(*p + i)    p是数组指针的首地址,*p+i实际上是*(p+0)+i,是指向temp[i]的地址,*(*p + i)就是temp[i]的值

LuLD 发表于 2020-9-23 10:33:58

sunrise085 发表于 2020-9-23 10:26
看看我之前回答的一个关于数组指针的问题
*(*p + i)    p是数组指针的首地址,*p+i实际上是*(p+0)+i,是指 ...

禁止套娃呀{:9_227:}

猪猪虾 发表于 2020-9-23 10:50:46

sunrise085 发表于 2020-9-23 10:26
看看我之前回答的一个关于数组指针的问题
*(*p + i)    p是数组指针的首地址,*p+i实际上是*(p+0)+i,是指 ...

我运行了你之前发的程序,报错了,截图在上面

sunrise085 发表于 2020-9-23 10:53:57

本帖最后由 sunrise085 于 2020-9-23 10:59 编辑

猪猪虾 发表于 2020-9-23 10:50
我运行了你之前发的程序,报错了,截图在上面

你把那个取地址符 & 去掉,有的编译器对数组可以写取地址府,有的不可以。
再给你个帖子

sunrise085 发表于 2020-9-23 10:56:54

LuLD 发表于 2020-9-23 10:33
禁止套娃呀

哈哈,其实这个贴子中也有,只是他选最佳的时候选的不是那个楼层。
现在换了一下帖子链接

猪猪虾 发表于 2020-9-26 20:50:05

sunrise085 发表于 2020-9-23 10:26
看看我之前回答的一个关于数组指针的问题
*(*p + i)    p是数组指针的首地址,*p+i实际上是*(p+0)+i,是指 ...

*p指向的是什么呢
页: [1]
查看完整版本: c语言,打印语句里面*(*p + i)怎么理解