C语言若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数组不为3的表达式是( )

如题所述

答案是C..我解释是这样,供你参考:B解释,x为数组首地址,+3就是向后移动三个地址,指针指向数值3的位置,将地址赋给指针变量P1,因为运算符++比*高一级,所以先执行P1++,但是看清楚,这里的P1的地址值没变,接着执行*运算符,取值就为3... 你的问题在于:P++在此次运算并不会加1,只能在下次调用到P值时,才是已经加了1的...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-17
运算符++和*优先级不相同,结合性自右向左,因此*p++等价于*(p++),其作用是表达式先得到p所指向的元素的值(即*p),然后再使p指向下一个。
这里p1的初值为x+3,则*p++的 结果是x[0],p指向a[1]。