如果struct a a1 = {0};
將結構的所有元素(不同類型)初始化爲零,那麼struct a a2 = {5};
應將其初始化爲5
。否?「struct a a1 = {0};」不同於「struct a a2 = {5};」爲什麼?
#include <stdio.h>
typedef struct _a {
int i;
int j;
int k;
}a;
int main(void)
{
a a0;
a a1 = {0};
a a2 = {5};
printf("a0.i = %d \n", a0.i);
printf("a0.j = %d \n", a0.j);
printf("a0.k = %d \n", a0.k);
printf("a1.i = %d \n", a1.i);
printf("a1.j = %d \n", a1.j);
printf("a1.k = %d \n", a1.k);
printf("a2.i = %d \n", a2.i);
printf("a2.j = %d \n", a2.j);
printf("a2.k = %d \n", a2.k);
return 0;
}
未初始化結構包含無用值
a0.i = 134513937
a0.j = 134513456
a0.k = 0
的初始化爲0
結構包含初始化爲0
a1.i = 0
a1.j = 0
a1.k = 0
的初始化爲5
結構的所有元素僅包含初始化到第一元件5
和其他元素初始化到0
。
a2.i = 5
a2.j = 0
a2.k = 0
將a2.j
和a2.k
始終保證期間a a2 = {5};
初始化到0
(或)是一個undefined behavior
OTOH,爲什麼我沒有看到初始化5
的的s2
所有元素。在{0}
期間struct
初始化如何完成?當使用{5}
時,它是如何不同的?
」 ......應該對其進行初始化到5 ..沒有?!「 簡短回答:第 – hirschhornsalz 2012-01-05 16:03:08