C언어 배열 초기화 간단한 질문입니다
배열을 변수로 초기화할 수 있나요? C표준에서 아래와 같은 코드가 가능한지 궁금합니다. 감사합니다.
#include <stdio.h>
int main(void)
{
int x = 0, y = 10; int arr[] = { x, y, (x + y) / 2
};
return 0;
}
55글자 더 채워주세요.
3개의 답변이 있어요!
안녕하세요.
잘 동작합니다., 아래 printf문을 추가한 code를 돌려보시면 잘 동작하는 것을 확인할수 있습니다.
#include <stdio.h> int main(void) { int x = 0, y = 10; int arr[] = { x, y, (x + y) / 2}; printf("%d %d %d\n", arr[0], arr[1], arr[2]); return 0; }다만, 중간에 나눗셈이 들어가므로 이에 대한 cating이 발생하는 부분은 고려해야 할 부분입니다. (arr[2])
감사합니다.
아래와 같은 코드를 이야기 하는것 인지요?
#include <stdio.h> int main() { int x = 0, y = 10; int arr[3] = {x, y, (x + y) / 2 }; printf("%d", arr[2]); return 0; }문제가 없이 잘 되는 것 같습니다.
말씀하신 코드에서 printf 함수만 추가하여 컴파일을 해본 결과 초기화가 가능합니다.
결과값이 0, 10, 5로 출력이 되었으며, 저러한 방식으로 변수 안의 값을 초기화가 가능한 것으로 볼 수 있을 듯 싶습니다.
특별한 경우가 아니라면 기본적으로 초기화를 따로 해주신 다음에 이용하는 것이 더 좋지 않을까 싶네요.