新手问题,数组名,下标,偏移量

weixin_41396713 2017-12-14 04:59:49
请看一段程序:
void input(int *p,int *len)
{
printf("输入序列长度:\n");
scanf_s("%d",len);
for(int i=0;i<*len;i++){
printf("输入序列:\n");
scanf_s("%d",p++);
}
return;
}


为什么把 p++ 改成 p[ i ] 就不对了?
(传入的实参是整形数组的名称)
...全文
278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky065530 2017-12-15
  • 打赏
  • 举报
回复
一个是地址,一个是值,当然不一样
灰机不灰机 2017-12-15
  • 打赏
  • 举报
回复
p[ i ]前加一个取地址符&应该也可以吧
daydayUp. 2017-12-15
  • 打赏
  • 举报
回复
你可以理解为,在输入的int *p,这个p是地址,而p[i]是p偏移i后的值。前面都回答的不错,为什么没有给分呢?
赵4老师 2017-12-14
  • 打赏
  • 举报
回复
A[B]
*(A+B)
*(B+A)
B[A]
//以上四行等价

"abc"[1]
*("abc"+1)
*(1+"abc")
1["abc"]
//以上四行等价

A[0]
*(A)
0[A]
//以上三行等价
勤奋的执着 2017-12-14
  • 打赏
  • 举报
回复
p++打印的是指针地址作为10进制打印,p[i]打印指针指向的内容了,能一样吗
自信男孩 2017-12-14
  • 打赏
  • 举报
回复
如果改成p+i就好了。因为p+i是地址,p[i]是p偏移i*sizeof(int)个字节后地址的内容;
jiht594 2017-12-14
  • 打赏
  • 举报
回复
&p[ i ]?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧