아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
지적인웜뱃3
지적인웜뱃320.11.03

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로 출력이 되었으며, 저러한 방식으로 변수 안의 값을 초기화가 가능한 것으로 볼 수 있을 듯 싶습니다.

    특별한 경우가 아니라면 기본적으로 초기화를 따로 해주신 다음에 이용하는 것이 더 좋지 않을까 싶네요.