작성
·
135
1
답변 2
2
안녕하세요, 질문&답변 도우미 Soobak 입니다.
해결되셨다니 다행입니다. 또한 스스로 해결하신 점이 멋있으세요.
이미 잘 문제를 해결하셨겠지만, 혹시나 하는 마음으로 저 또한 답변을 드려봅니다.
13
번째 코드라인에서 (
)
괄호 사용의 문제 때문입니다.
C언어에서 문자 배열을 초기화할 때는 괄호가 아닌 중괄호 {
}
를 사용해야 합니다.
만약, 괄호를 사용하면, 컴파일러는 이를 연산식으로 해석하려 시도합니다.
즉, char str2[10] = ('H', 'i');
에서, ('H', 'i')
는 ,
(comma)연산자를 사용하는데, 이 연산자는 왼쪽 피연산자를 평가하고 결과를 버린 후, 오른쪽 피연산자의 결과를 반환합니다.
따라서, 'H'
는 버려지고, 'i'
가 반환됩니다.
결과적으로 코드는 char str2[10] = 'i';
와 같이 되어버려, 할당에 대한 오류가 발생하는 것입니다.
1