structpoint{inta;int*b;}p;

提问:structpoint{inta;int*b;}p;

struct point{int a;int *b;}p;p.a=300;p.b=(int *)500;请问p.a+p.b为多少

网友回答:

结果为(注意,一定是32位或64位编译器,16位的结果不同的)

1700

很好的考核

首先在C/C++运算中,低精度隐式转为高精度运算

你的p.a+p.b会从简单的int运算转化为int *的运算

对于int *与int的+运算,它计算的是偏移量,也就是实际运算为

p.b+sizeof(int)*p.a

=500+4*300

=1700


相关推荐

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1