프로그래밍/C++

C++11 배열 초기화

이재만박사 2020. 9. 18. 17:24

배열은 이미 리스트 초기화를 사용하고 있으며, C++11에서는 몇 가지가 추가되었다


먼저, 배열을 초기화할 때, = 부호를 사용하지 않아도 된다


double earnings[4] { 1.2e4, 1.6e4, 1.1e4, 1.7e4 }; // C++11에서 문제 없음



두 번째로, 중괄호를 공백하여 모든 배열을 0으로 초기화할 수 있다


unsigned int counts[10] = { }; // 모든 배열값을 0으로 초기화


float balances[1000] { };      // 모든 배열값을 0으로 초기화



세 번째로, 리스트 초기화시에 narrowing을 방지할 수 있다


long plifs[ ] = { 25, 92, 3.0 };     // 허용 안 됨


char slifs[4] = { 'h', 'i', 1122011, '\0' } // 허용 안 됨


char tlifs[4] = { 'h', 'i', 112, '\0' } // 허용



plifs[ ]는 부동 소수점형에서 정수형으로 변환되기 때문에, 초기화가 실패하게 된다


심지어 소수점 아래 값이 0이라고 하더라도 실패한다


slifs[4]는