能力值:
( LV12,RANK:230 )
|
-
-
2 楼
我电脑上是:
0x28ff40
xyCBA
yCBA
0x28ff44
======================
&f.a 的意思是从a这个地址取数据吧,这个地址应该在不同的电脑上就不同了。
&f.d 类似
当然 &f.d - &f.a = short + char + char = 4
而char取地址就变成char*了。
结构体foo的内容依次为
{
1234
'x'
'y'
'CBA'0 这个是因为int是4个字节,小端存放。
}
所以答案就是这个样了= =
我蒙的。
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
我知道了 在这里个大家说说我的收获
但是不知道是不是正确的解释
由于是 short 和 int类型
所以 a 和 d 直接转义成地址了
而 b 和 c 是 char 所以转义成 const void * 这样就输出内存里面的东西
&f.b 和 &f.c 输出的位数是相同的
xyCBA
yCBA'\0'
那个'\0'是隐藏的 咱都不知道
|
能力值:
( LV5,RANK:70 )
|
-
-
4 楼
C++的优先级中,成员运算符的级别是第二高的,所以这里的&f.a实际上是&(f.a),取的是变量地址。
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
当char*处理了,遇到'\0'结束,等同于char *lpbuffer = "Hello,World!"; cout << lpbuffer << endl;
<<在重载的时候后面是一个地址量,我估计他把他当成下面的形式了
ostream operator<<(char *) //用于向输出流插入一个字符串数据
|
|
|