C语言题目:有如下定义:int x[]={1,2,3},*p=x,y;则y=*p++;相当于:
问题描述:
C语言题目:有如下定义:int x[]={1,2,3},*p=x,y;则y=*p++;相当于:
A.y=*(p+1),p=p+1
B.y=1,x++
C.y=2,p=x+1
D.y=*p,p++
答
应该是D,*,++优先级是一样的的,运算方式是右结合.所以先计算++(地址加1),再计算*.但++是先访问再++生效,所以取址运算还是对加1前的p.