c언어 초보 질문좀요 </code>변수선언초기화
글쓴이: qhsrms3 / 작성시간: 수, 2015/03/18 - 1:39오후
1#include
2
3int main(void)
4{
5
6 int num1, num2, num3;
7 int result=( num1*num2+num3); //왜 여기선 선언과 초기화를 하면 안될까요?
8
9 printf("3개 숫자 입력해봐 빨리\n");
10 scanf("%d %d %d", &num1, &num2, &num3);
11
12 printf("%d x %d + %d=%d \n개쉽지?\n",num1,num2,num3,result);
return 0;
}
프로그램 자체 컴파일은 되는데 실행도 되는데요,
실행은 되는데 띵~ 하더니만 다시시도 무시 이런 창뜨면서 꺼지든데 왜 안되는거죠?
저기 주석 단 부분 때문인거 같은데 왜 안되는거죠?
실제로 따로 int result; 만 선언을 하고 11행 부분에
result=( num1*num2+num3);
초기화 하면 정삭적으로 되는데요..
Forums:
컴파일러는 뭐 쓰시는지. 일단, num1 등이
컴파일러는 뭐 쓰시는지.
일단, num1 등이 초기화가 안되어 있으니, result에 어떤 값이 들어갈지 모르죠.
그로 인해 오류가 날 수는 있으나, 컴파일러마다 다릅니다.
그리고 장난 같은 코드는 공공 게시판에 올리지 말고, 일기장에나 쓰시길...
num1, num2, num3의 값이 정해지기 전에
num1, num2, num3의 값이 정해지기 전에 7라인에서 값을 읽으려고 시도했기 때문입니다.
C는 함수형 언어가 아니기 때문에 num1, num2, num3이 정해지기 전에 result를 먼저 지정할 수 없습니다.
C가 함수형 언어가 아니었군요.
명령형 프로그래밍 언어였다는 걸 오늘 처음 알았습니다. 나중에 찾아봐야겠네요.
저는 이렇게 생각했습니다.
댓글 달기