8. 有如下结构体的定义: struct AA{ int *a,b; char c; }; 则sizeof(AA)的值是___________。

值为什么不是9 ? VC 6.0 编译是 12

因为编译器默认情况下会对字节进行对齐,VC++是按4字节边界进行对齐,所以这个结构体实际上的内存占用布局是
int* a; .....4字节
int b;.......4字节
char c;.....1字节
................3字节
存在由字节对齐而产生的多余空间。所以结果是4+4+4=12

想了解更仔细点的话,你可以到百度上搜索“字节对齐”,可以找到更详细的讲解。
温馨提示:内容为网友见解,仅供参考
无其他回答

...则sizeof(struct aa) 的值是 struct aa { int r1;double r2; float...
故 sizeof(struct aa) 等于 3 个 double 大小,即 8*3 = 24 字节。上面 ABCD 4个答案 全错。

若有以下定义,则sizeof(a)的值是,sizeof(b)的值是拜托各位大神_百度...
让我们先看一个结构体: struct S1 { char c; int i; }; 问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。 Why为什么受伤的总是我 请不要沮丧...

struct{int i;char c;float a}test;则sizeof(test)的值是
若编译器将int处理为2字节,则值为8;若编译器将int处理为4字节,则值为12。为结构体分配内存时,是按顺序分配的且必须对齐,即变量为2字节则其地址最低位必须为0,变量为4字节则其地址最低两位必须为0。

若有以下定义和语句,则sizeof(a)的值是__ ___,而sizeof(b)的值是...
一个int 型变量占用4个字节。而一个char占用1个字节。a中有两个int ,一个char 。按说应该是 4*2 + 1 =9;但是,有个新手不知道的规则。那就是对齐。就是说,以4个字节为一行(32位),若当前的行中不够放下下一个数据的话,那么就放弃当前行的剩余空间,从下一行开始。于是,变成了 4 + ( 1 + 3【3...

...的值是___? struct {int i; char c; float a; }tes
32位机 vc6.0里面的值是12;不同的编译器会不同的。记得以前学的是int 占2字节,char 占1字节,float占4字节。

(C语言)大学填空题
8. 有如下结构体的定义:struct AA{ int *a,b;char c;};则sizeof(AA)的值是___12___。9.若类Sample 中只有如下几个数据成员:const float f,const char c,则其构造函数应 定义为___ Sample ():f(0),c(‘0’){} 只能在构造函数初始化列表中初始化___ ___10. 如果派生类中...

struct d {int a,b; char c; } today;
应该会打印出来12吧,结构体里面的数据是按照最大数据类型对齐的。在这个结构体中即为int型的3倍。

sizeof(A)在c语言中a是整形的变量是什么意思?
在C语言中,`sizeof(A)`是一个操作符,用于获取变量、类型、表达式等所占据的内存大小。其中,A可以是任意类型的数据,包括整数、浮点数、字符、结构体、数组等。如果A是一个整型变量,则`sizeof(A)`的值通常为该整型数据类型在当前编译环境下所占据的字节数。例如,在大多数32位系统中,int类型...

(2)若已有如下的结构体变量定义?
void WriteFile(){ ofstream f("stud. dat", ios::binary);f.write((char *)stu, sizeof(student) * 3);f.close();} void ReadFile(){ ifstream in("stud. dat", ios_base::in | ios_base::binary);in.read((char *)stu, sizeof(student) * 3);in.close();} ...

2013计算机二级C语言完整预测试题及答案一
char *p, c; s=&k; p=&c; *p=′a′; … D)int *s, k; char *p, e; s=&k; p=&c; s=p; *s=1; … 35.若有下面的说明和定义,则sizeof(struct aa)的值是 struct aa { int r1; double r2; float r3; union uu{char u1[5];long u2[2];}ua; } mya; A)30 B)29 C)24 D...

相似回答