c - 합치기 - 문자열 배열 포인터




문자 배열 초기화 딜레마 (2)

다음 코드를 고려하십시오.

// hacky, since "123" is 4 chars long (including terminating 0)
char symbols[3] = "123";

// clean, but lot of typing
char symbols[3] = {'1', '2', '3'};

그래서 비틀기 는 실제로 코드에 대한 주석에 설명되어 있습니다. 0을 종료하지 않고 char[] 을 문자열 리터럴로 초기화하는 방법이 있습니까?

업데이트 : IntelliSense가 실제로 잘못된 것 같습니다.이 동작은 C 표준에 명시 적으로 정의되어 있습니다.


1) 언급 한 문제문제 가되지 않습니다. 2) Que : 0을 종료하지 않고 문자열 리터럴로 char []를 초기화하는 방법이 있습니까? - 당신은 이미 그것을하고 있습니다.


배열의 길이가 3 문자 만인 경우 첫 번째 코드 줄은 두 번째 줄과 동일합니다. 문자열 끝에있는 '\0' 은 단순히 저장되지 않습니다. IOW, "더러운"또는 "잘못"이 없습니다.







initializer