C语言若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数组不为3的表达式是( )
引用ice繁华Hs122的回答:
答案是C..我解释是这样,供你参考:B解释,x为数组首地址,+3就是向后移动三个地址,指针指向数值3的位置,将地址赋给指针变量P1,因为运算符++比*高一级,所以先执行P1++,但是看清楚,这里的P1的地址值没变,接着执行*运算符,取值就为3... 你的问题在于:P++在此次运算并不会加1,只能在下次调用到P值时,才是已经加了1的...
答案是C..我解释是这样,供你参考:B解释,x为数组首地址,+3就是向后移动三个地址,指针指向数值3的位置,将地址赋给指针变量P1,因为运算符++比*高一级,所以先执行P1++,但是看清楚,这里的P1的地址值没变,接着执行*运算符,取值就为3... 你的问题在于:P++在此次运算并不会加1,只能在下次调用到P值时,才是已经加了1的...
展开全部
运算符++和*优先级不相同,结合性自右向左,因此*p++等价于*(p++),其作用是表达式先得到p所指向的元素的值(即*p),然后再使p指向下一个。
这里p1的初值为x+3,则*p++的 结果是x[0],p指向a[1]。
这里p1的初值为x+3,则*p++的 结果是x[0],p指向a[1]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询