设有定义int x[]={1,2,3},*p=x;则值为2的表达式是:

设有定义int x[]={1,2,3},*p=x;则值为2的表达式是:
A)p+=1,*--p B)p+=1,*p--C)p+=1,p--D)p+=1,--*p
moxi1985 1年前 已收到1个回答 举报

siyu1979 幼苗

共回答了22个问题采纳率:90.9% 举报

答案选B.
四个选项都是逗号表达式,所以表达式的结果是后一个逗号表达式的值.
A项,p+=1,这时 p 指向 2; * --p,此时 p 先自减,指向 1,表达式的值为 1.
B项,p+=1,这时 p 指向 2; *p--,此时是先执行 *p,再将 p 自减,所以表达式的值为 2.
C项,p+=1,这时 p 指向 2; p--,此时 p 指向 1,表达式的值是 x[0] 的地址.
D项,p+=1,这时 p 指向 2; --*p相当于 --(*p),而 *p 为 2,所以表达式的值是 1.

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.042 s. - webmaster@yulucn.com