当前位置 :
c语言新手关于结构体的#includeStructst{intx;Int*y;}*p;Intdt[4]={10,20,30,40};Structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};Main(){P=aa;Printf("%dn",++p->x);Printff("%dn",(++p)->x);Printf("%dn",++(*p->y));}这里第三
更新时间: 2025-08-30 07:47:27
1人问答
问题描述:

c语言新手关于结构体的

#include

Structst

{intx;

Int*y;

}*p;

Intdt[4]={10,20,30,40};

Structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};

Main()

{

P=aa;

Printf("%dn",++p->x);

Printff("%dn",(++p)->x);

Printf("%dn",++(*p->y));

}

这里第三个printf的答案为什么是21而不是11

Printf("%dn",++(*p->y))

这个应该是先指向dt[0],再求值,再加一的吧.

梁福平回答:
  在执行printf("%dn",(++p)->x);时p已经自加1了,指向的地址是第二组数据.   所以在执行printf("%dn",++(*p->y));时*p->y的值是20,再++就是21..   如果去掉printf("%dn",(++p)->x);后printf("%dn",++(*p->y));的结果才是11.
最新更新
保卡通(baokatong.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 保卡通 baokatong.com 版权所有