배열및 구조체의 초기화 #
// 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] = {};
'Dev > C++' 카테고리의 다른 글
new 2 (0) | 2008.05.01 |
---|---|
new 1 (0) | 2008.05.01 |
operator overloading 2 (0) | 2008.05.01 |
operator overloading 1 (0) | 2008.05.01 |
Conversion Functions - 변환함수 (0) | 2008.05.01 |