早教吧作业答案频道 -->其他-->
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("%d\n",++p->x);Printff("%d\n",(++p)->x);Printf("%d\n",++(*p->y));}这里第三
题目详情
c 语言新手 关于 结构体的
#include
Struct st
{ int x;
Int *y;
} *p;
Int dt[4]={10,20,30,40};
Struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
Main()
{
P=aa;
Printf("%d\n",++p->x);
Printff("%d\n",(++p)->x);
Printf("%d\n",++(*p->y));
}
这里第三个printf的答案为什么是 21 而不是11
Printf("%d\n",++(*p->y))
这个应该是先指向dt[0],再求值,再加一的吧.
#include
Struct st
{ int x;
Int *y;
} *p;
Int dt[4]={10,20,30,40};
Struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
Main()
{
P=aa;
Printf("%d\n",++p->x);
Printff("%d\n",(++p)->x);
Printf("%d\n",++(*p->y));
}
这里第三个printf的答案为什么是 21 而不是11
Printf("%d\n",++(*p->y))
这个应该是先指向dt[0],再求值,再加一的吧.
▼优质解答
答案和解析
在执行printf("%d\n",(++p)->x);时p已经自加1了,指向的地址是第二组数据.
所以在执行printf("%d\n",++(*p->y));时*p->y的值是20,再++就是21..
如果去掉printf("%d\n",(++p)->x);后printf("%d\n",++(*p->y));的结果才是11.
所以在执行printf("%d\n",++(*p->y));时*p->y的值是20,再++就是21..
如果去掉printf("%d\n",(++p)->x);后printf("%d\n",++(*p->y));的结果才是11.
看了 c语言新手关于结构体的#in...的网友还看了以下:
在三棱锥P-ABC中,D、E、F分别是PA、PB、PC上的三个点,AD:DP=1:3,BE:EP= 2020-04-27 …
lingo程序哪儿错了?MODEL:sets:Quarters/1..4/:a,k,d,c,t,p 2020-05-13 …
(1)如图1,在AB直线一侧C、D两点,在AB上找一点P,使C、D、P三点组成的三角形的周长最短, 2020-06-13 …
如图,在菱形ABCD中,∠ABC=60°,AB=2,点P是这个菱形内部或边上的一点,若以点P、B、 2020-06-13 …
如图,点A是量角器直径的一个端点,点B在半圆周上,点P在AB上,点Q在AB上,且PB=PQ.若点P 2020-07-05 …
c语言新手关于结构体的#includeStructst{intx;Int*y;}*p;Intdt[ 2020-07-23 …
(p00p•三明)已知:如图,他D是6z△p他他的斜边p他上的高,且他他=p,p他=他,他D=h,p 2020-10-31 …
手图,在三棱锥P-ABz中,PA⊥Az,PA⊥AB,PA=PB,∠ABz=πp,∠BzA=π三,点D 2020-11-04 …
某连续变量分为五组:第一组为40~50,第二组为50~60,第三组为60~70,第四组为70~80, 2020-11-22 …
如图,AB⊥DB于点B,CD⊥DB于点D,AB=6,CD=4,BD=14,点P在DB上移动.若以点C 2021-01-12 …