*(*(a+i)+j)与*(a[i]+j)

h2995527 2011-05-11 08:45:56
a[i][j]是一个二维数组
*(*(a+i)+j)与*(a[i]+j)书上说这两个都可以表示a[i][j] 的值
我不理解的是为什么*(a+i)和a[i]是等价的
a[i]是个地址
a+i也是个地址
那*(a+i)不就是地址里面的值了么?
请大牛们讲解一下哈
...全文
1327 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
D1000 2011-05-26
  • 打赏
  • 举报
回复 1
C语言中,A[j]表示一维数组,那么变量A则为此数组的首地址,通过A[j]或*(A+j)可以访问每个元素。
同理,用a[i]代替A,则通过a[i][j]或*(a[i]+j)可以访问每个元素,由于a[i]也表示一维数组(数组的数组),所以a[i]也可以用*(a+i)来表示,所以*(a[i]+j)与*(*(a+i)+j)等价。



对上面大侠的说法,很受用。“用a[i]代替A''就是说a[i]也是数组名喽,这样解释就通了。嘎嘎。。。
jamesplj 2011-05-12
  • 打赏
  • 举报
回复
C语言中,A[j]表示一维数组,那么变量A则为此数组的首地址,通过A[j]或*(A+j)可以访问每个元素。
同理,用a[i]代替A,则通过a[i][j]或*(a[i]+j)可以访问每个元素,由于a[i]也表示一维数组(数组的数组),所以a[i]也可以用*(a+i)来表示,所以*(a[i]+j)与*(*(a+i)+j)等价。
guchangzheng1990 2011-05-12
  • 打赏
  • 举报
回复
a[i]地址对应的是a[i]的第一个元素的地址。
因为a是一个二维数组的首元素的地址 及 *(a+i) 也为地址。、
大熊猫侯佩 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mydo 的回复:]
a[i]不是地址!概念上先错了。
[/Quote]

你是2维函数,那我看错了。 :)
大熊猫侯佩 2011-05-11
  • 打赏
  • 举报
回复
a[i]不是地址!概念上先错了。

21,493

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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