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