1

 结构体的大小:

题目是这样的:

32位机器上定义如下结构体:

struct xx
{
    long long _x1;
    char _x2;
    int _x3;
    char _x4[2];
    static int _x5;
};
int xx::_x5;

 

问 sizeof(xx)的大小是

 

记住两点:1,结构体中的成员的偏移量必须是其大小的整数倍;2,结构体的最终大小必须是结构体中最大简单类型成员的整数倍。

这个题中:x1 偏移量0,长度8;

                x2 偏移量8, 长度1;

                x3 偏移量9,长度4,不符合所以偏移量改为12(9,10,11跨过),长度4;

                x4 偏移量16,长度2;

                x5是静态变量不管它;

                最后8+1+3+4+2=18,long long长度为8,所以18扩充到24;则结构体的大小为24;

linux的命令:

ps:查看运行中的进程,。。。

取反指令:

What results from the following code fragment?

1

2

3

int i = 5;

int j = 10;

System.out.println(i + ~j);

“~”是取反指令;这题需要了解二进制在计算机中的存储,负数在计算机中是以补码存储的;

32位系统来说:

10的二进制:

0000000000000000 0000000000001010

10取反:

1111111111111111 1111111111110101

变成了负数;而负数在计算机中是以补码存储的;

变成补码即为:

1000000000000000 0000000000001011

即为-11 所以答案为-6.

搜索引擎:

搜索引擎显示搜索结果的时间是搜索引擎对该词条的收录时间,这个时间大于等于楼主发帖时间。..

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭