c语言中的 *sizeof 问题

2024-12-02 17:00:51
推荐回答(3个)
回答1:

选A因为union是共用体,他们用同一段内存空间,每次用时,都是覆盖式的,第一次时分配1个字节,第二次时分配2个字节,公用上次分配的一个自己的空间,同理下推,结果就是类型长度最长的那个。所以int
2个字节。

回答2:

对。。。在VC++下,int占4个字节,a数组有2个成员,所以结果是8.。。
其他编译器中int占2个字节的话结果就是4

回答3:

double是双精度浮点数,比float 能表示小数点儿后更多的位。
语法上可以不一样,malloc的参数是分配置内存的大小,你写个240代替30*sizeof(double)
也是可以的,但是不直观。返回值是void *,  前面的(double*)是强制类型转换,应该是要赋值给一个double*的变量。