u013421512
coco1312
2015-09-05 03:42
采纳率: 30.2%
浏览 1.8k
已采纳

C语言数组元素的表达式问题

1. 若有定义int w[3][5];则以下不能正确表示该数组元素的表达式是:
(A)*(&w[0][0]+1) (B)*(*W+3) (C)*(*(W+1)) (D)*(W+1)[4]
====参考答案是D,求大侠指教为何呢?*(W+1)[4]等价于w[1][4]元素吧?个人觉得(C)*(*(W+1))—这个有问题吧??

2.设有以下说明和语句:inta[3][4],(*p)[4];p=a;则与表达式*(*p+2)等价的选项是:
(A)a[0][2]__ (B)*(a+2)[0] (C)(*a+2)[0] (D)a[2][0]_
=====参考答案说:*(a+2)[0]这个等价于a[3][0],这个答案跟第一题的类似吧,说明第一题的D答案不对吧??
另外(*a+2)[0]===这个等价于a[0][2],这对吗?感觉表达式有问题吧??求教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • smils
    山枝 2015-09-05 08:45
    已采纳

    [ ] 的优先级高啊!第二个问题之所以没问题 是因为 [0] 和 * 是等价的 谁先,答案都一样 但是 *(a+2)[1]等价于a[3][1]?

    点赞 评论
  • smils
    山枝 2015-09-05 08:46

    [ ] 的优先级高啊!第二个问题之所以没问题 是因为 [0] 和 * 是等价的 谁先,答案都一样 但是 *(a+2)[1]等价于a[3][1]?

    点赞 评论

相关推荐