设有如下的说明和定义struct{inta;char*s;)x,*p=&x;x.a=4;x.S=’’hello’’;则以下叙述中正确的是

admin2019-06-09  30

问题 设有如下的说明和定义struct{inta;char*s;)x,*p=&x;x.a=4;x.S=’’hello’’;则以下叙述中正确的是

选项 A、语句++p->a;的效果是使P增1
B、(p++)->a与p++->a都是合语法的表达式,但二者不等价
C、语句*p->s++;等价于(*p)->s++;
D、语句++p->a;的效果是使成员a增1

答案D

解析 p->a得到p指向的结构体变量中的成员a的值。p->a++得到p指向的结构体变量中的成员a的值,用完该值后使p-a加1。++p->a得到p指向的结构体变量中的成员a的值使之加1(先加)。由此可见指向运算符->优先级高于++,因此*p->s++相当于*(p->s)++,结合性自右至左,因此p++->a。和(p++)->a等价。
转载请注明原文地址:https://jikaoti.com/ti/kWf0FFFM
0

最新回复(0)