关于C数组语法的困惑?

ltcs 2004-06-26 10:58:40
int a[5] = { 1, 2, 3, 4, 5 };

表达式:a[4]
表达式值:5
C把数组下标访问换算为*( a + 4 ),也就是间接访问.

--------------------------------------------------------------
但这个但表达式:&a[4]
表达式值:a[4]的地址

按优先级先算a[4],但a[4]结果不是5吗(按上面的公式进行换算)?再对5(常量)
进行取地址,结果是a[4]的地址,为什么不是非法了?

谢谢.
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
junnyfeng 2004-06-26
  • 打赏
  • 举报
回复
因为a[4]本身就是变量,它的值是5。
zjxiaoyu 2004-06-26
  • 打赏
  • 举报
回复
呵呵。
如果 int a = 6;
&a,难道就是取6的地址? 呵呵。道理是一样的。

69,369

社区成员

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

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