若有定义char a[10];,则不正确的数组元素或指针引用是? 是a[5-2]吗?

如题所述

若有定义char a[10],则不正确的数组元素或指针引用是a[10],因为,数组元素的下标是0~9。

数组元素的一般形式为:

数组名[下标],其中下标只能为整型常量或整型表达式。如为小数时,C 编译将自动取整。

例如:a[5]、a[i+j]、a[i++]

数组及数组元素的地址表示如下:a是二维数组名,也是二维数组0行的首地址,等于1000。a[0]是第一个一维数组的数组名和首地址,因此也为1000。*(a+0)或*a是与a[0]等效的,它表示一维数组a[0]0号元素的首地址。

扩展资料:

a[0]可以看成是a[0]+0是一维数组a[0]的0号元素的首地址,而a[0]+1则是a[0]的1号元素首地址,由此可得出a[i]+j则是一维数组a[i]的j号元素首地址,它等于&a[i][j]。由a[i]=*(a+i)得a[i]+j=*(a+i)+j,由于*(a+i)+j是二维数组a的i行j列元素的首地址。

参考资料来源:百度百科-数组指针

参考资料来源:百度百科-数组元素

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-11
不是,a[5-2]是a[3],是正确的追问

a[5-2]的表示是错的啊,要用a[3]?

追答

我刚才在计算机上测试了,没问题
char a[10];
a[5-2]=‘9’;

本回答被提问者采纳
相似回答