第一知识网
www.001rz.com很简单的一小段C语言代码,结果为什么是这样?
日期:2012-04-18 18:59:41 人气:26
b[4]为什么等于2?
这个b是4个元素的int型数组,且没有初始化,范围是b[0]-b[3],你打印b[4]的值已经越界访问了,这是很危险的,数组b的范围是b[0]-b[3],所以b[4]值是不确定的。
a1和b1的大小为什么不同。
这个是结构体对齐问题,而且是否相同还需要看编译器的不同,编译器在编译时会自动将结构体中的元素对齐到该结构体中最大的类型,具体的对齐原则请百度:结构体对齐
如果以32位VC编译器为例的话:a1:16字节,b1:16字节,a1和b1大小是相同的。
但是如果在64位gcc编译器