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],这对吗?感觉表达式有问题吧??求教

查看全部
u013421512
coco1312
2015/09/05 03:42
  • 数组
  • class
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

2个回复