C语言题目,求详细解释
structst{intn;structst*q;};structsta[3]={5,&a[1],7,&a[2],9,”\0"},*p;则下列表达式的值为6的是A。p++...
struct st
{
int n;
struct st *q;
};
struct st a[3]={5,&a[1],7,&a[2],9,”\0"},*p;
则下列表达式的值为6的是
A。p++->n B.p->n++ C (*p).n++ D.++p->n 展开
{
int n;
struct st *q;
};
struct st a[3]={5,&a[1],7,&a[2],9,”\0"},*p;
则下列表达式的值为6的是
A。p++->n B.p->n++ C (*p).n++ D.++p->n 展开
2个回答
展开全部
应该是有一个p=a在前面吧?
没有的话,p地址不确定,4个都错吧。。。
有的话,应该是D~
没有的话,p地址不确定,4个都错吧。。。
有的话,应该是D~
追问
如果有,为什么选D
追答
p=a,表示p为a[0]地址,也就是说,单纯的p->n是5
然后对于4的答案
A,p++表示执行该表达式后,p向后移一个数据,即执行p->n以后,p将指向a[1]
B,p->n++ ,同理,执行操作后a[0]的n为6,但表达式的值为n的原值,5
C,同B
D,实际上,++与->两个操作符,->优先级高,即先取值,得5。然后执行前进行++操作,变6
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询