은 C++03과 C++11에서 모두 유효합니다.`char` 배열을 초기화하는데 유효한 문자열 리터럴을 포함하는 초기화 기는 왜입니까?
char
이 아닌 char const*
이 아니기 때문에 나는 기대하지 않을 것입니다. 그리고 brace-initialiser가 각 "items"에 대해 호환 가능한 유형을 요구할 것으로 기대합니다. 아이템이 하나 있는데 char const*
이 아니라 char
입니다.
그래서이 초기화가 유효합니까? 그리고 그렇게되는 이유가 있습니까?
마찬가지로 char c[] = {"aa"};
컴파일하고 출력 "aa
"의 결과 c
인쇄.
나는 char c[]{"a"}
물론, C++ 11에서 유효한 것으로 기대하지만 같은 아니에요! 마찬가지로, char c[] = {'a'}
은 모두 char c[] = "a"
과 같이 두 가지 모두에서 분명합니다.
당신은'char c [] = { "aa"};'시도 했습니까? –
@VJo : 유효합니다. –
왜 그것이 유효하지 않다고 생각합니까? 당신이 묻고있는 것이 분명하지 않습니다. 그것을 금지하는 규칙이 없기 때문에 유효합니다. 어떤 규칙에 따라 그것을 금지 하시겠습니까? – jalf