C语言题目,高手帮帮忙吧!!!

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:10:57
设有以下定义和语句,则使指针指向值为9的数组元素的表达式是()
int a[]={1,2,3,4,5,6,7,8,9,10},*p;
p=a;
我做的答案是*p(a+8)和参考答案(p+=8)不一样 我搞不清楚 高手帮帮忙!!!
我要分析过程 我说的是*p(a+8)和p+=8的区别

当然是不一样的,*p(a+8)这样写是错误的,根本没有意义,你可以写成*(p+8)或者*(a+i),因为一开始a与p都指向数组的起始地址,当加上8以后就指向了第9个元素(注:在c里指针每加上1就是往后面加上所指向的对象类型所占用的字节数的个数),那么*(p+8)=a[8]了

*(p+=8)

一样

*p(a+8)跟题意不复合,你这个是输出的是个值,二不是指针指向的值。明白没?

5分太少了。不和你玩了。