배열및 구조체의 초기화 #
// 3개의 원소를 각각 1, 2, 3 으로 초기화
int nArr[3] = { 1, 2, 3 };
// 4개의 원소를 가지는 배열 4개를 1, 2, 3, 4 로 초기화
// 이때 배열의 개수는 4개로 자동으로 정의됨
int nArr[] = { 1, 2, 3, 4 };
struct St {
int a;
int b;
};
// 구조체 St의 멤머 a, b를 각각 1, 2로 초기화
St st = { 1, 2 };
// 구조체의 배열 초기화
St st[2] = { { 0, 1 }, { 2, 3 } };
초기화 되지 않은 auto 변수는 정의되지 않은 값을 가진다 #
// 어떤값이 들어있는지 정의되지 않았음
int nArr[3];
St st;
St st[2] ;
// 물론 배열및 구조체 변수가 아닌 일반 auto 변수도 같이 적용
int n; // 정의되지 않음
부분초기화된 배열및 구조체 #
부분 초기화된 배열및 구조체의 나머지 원소나 멤버의 값은 static변수처럼(0으로 초기화) 된다
// 첫번째 원소에 0을 초기화 하고 나머지 2개의 원소에는 0을 적용
int nArr[3] = { 0 };
// 첫번째와 두번째에 각각 1, 3으로 값을 초기화 하고 나머지 3개의 원소에 대해서는 0으로 초기화 한다
int nArr[5] = { 1, 3, };
// 맨 마지막 콤마는 생략 가능
int nArr[5] = { 1, 3 };
struct St {
int a;
int b;
};
// St의 a의 멤버에 2를 초기화 하고 나머지멤버인 b에 0을 초기화
St st = { 2 };
St st = { 2, };
모든원소에 0으로 초기화 #
struct St {
int a;
int b;
};
// 0으로 초기화 하는 같은 내용들
St st = { 0, 0 };
St st = { 0, };
St st = { 0 };
St st = {};
int nArr[5] = { 0, 0, 0, 0, 0 };
int nArr[5] = { 0, };
int nArr[5] = { 0 };
int nArr[5] = {};