4个回答
展开全部
首先从图(a)中知道指针pd所指向地址为1430,而pd的地址是1440。1430地址存储的数字为0.0
指针p的地址是1400,指向的地址是1410。 地址1410存储数值为7,
指针p2地址为1380,指向地址1350,变量a地址为1350,值为14
指针p1地址为1300,指向地址为1100,而地址1100的值为9
这是这个图所得的信息,可以这么写为,不要纠结语法,这只是直观表示
这部分叫(上面)
pd=1430;
*pd=0.0;
*(1410)=7;
p=1410;
*p=7
p2=1350;
*p2=a=14;
&a=1350;
a=14;
p1=1100;
*p1=9;
然后看下面代码
1、*pd+=(double)*p1;
由上面*pd为0.0,*p1为9,
所以*pd=9.0;
pd仍为1430
2、p1=&a;
因为上面&a=1350;指针p1指向变量a
所以p1=1350;
3、*p1=*p;
由上面*p=7;
所以*p1=7;这个时候由于p1=&a,所以*p1=7,a的值也变成7
4、p2=p1;
第二步p1=&a;此时p1=1350,指针p2也指向变量a
所以p2=1350
5、*p2/=3;
因为第四步已经改变了p2的指向,*p2指向地址1350的值,也就是变量a的值7,
*p2/=3,也就是7/3,因为a是int,所以*p2=2;此时a也为2。
6、++p2
也就是p2指向了地址1354,这是因为int4个字节长。此地址值为20
7、++*p2;
++与*等优先级,按顺序先与*结合在于++结合,*p2=20;在++ ,所以为21
总结:
1430
9.0
7
1410
1354
21
2
9
指针p的地址是1400,指向的地址是1410。 地址1410存储数值为7,
指针p2地址为1380,指向地址1350,变量a地址为1350,值为14
指针p1地址为1300,指向地址为1100,而地址1100的值为9
这是这个图所得的信息,可以这么写为,不要纠结语法,这只是直观表示
这部分叫(上面)
pd=1430;
*pd=0.0;
*(1410)=7;
p=1410;
*p=7
p2=1350;
*p2=a=14;
&a=1350;
a=14;
p1=1100;
*p1=9;
然后看下面代码
1、*pd+=(double)*p1;
由上面*pd为0.0,*p1为9,
所以*pd=9.0;
pd仍为1430
2、p1=&a;
因为上面&a=1350;指针p1指向变量a
所以p1=1350;
3、*p1=*p;
由上面*p=7;
所以*p1=7;这个时候由于p1=&a,所以*p1=7,a的值也变成7
4、p2=p1;
第二步p1=&a;此时p1=1350,指针p2也指向变量a
所以p2=1350
5、*p2/=3;
因为第四步已经改变了p2的指向,*p2指向地址1350的值,也就是变量a的值7,
*p2/=3,也就是7/3,因为a是int,所以*p2=2;此时a也为2。
6、++p2
也就是p2指向了地址1354,这是因为int4个字节长。此地址值为20
7、++*p2;
++与*等优先级,按顺序先与*结合在于++结合,*p2=20;在++ ,所以为21
总结:
1430
9.0
7
1410
1354
21
2
9
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询