인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

푸레님의 프로필 이미지
푸레

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.1 while 반복 루프에서 scanf()의 반환값 사용하기

int num,sum=0; 과 int sum,num=0;의 차이

작성

·

902

4

int sum,num = 0;

int stats = 0;

printf("Input integer (q to quit) : ");

stats = scanf("%d", &num);

while (stats == 1)

{

sum = sum + num;

printf("Input integer (q to quit) :");

stats = scanf("%d", &num);

}

printf("sum = %d", sum);

return 0;

궁금한게 있습니다. 위에 코드처럼 int sum,num=0;으로 값을 초기화시 초기화 되지 않은 지역변수 'sum' 이 사용되었다고 오류가 뜨는데요.

제 머리속에 서는 컴파일러가 왼쪽부터 오른쪽 방향으로 (-->)진행을 시작하다가 ;을 만나면 프로그래머의 의도를 알아차리고 해석하는걸로 알고있는데용

그러면 ;을 만나기전까지 int sum,num=0;이나 int num,sum=0;이 똑같지 않나요?

sum과 num의 순서가 문제라면
int sum=0;
int num=0;

이렇게 선언을 시작하고 실행해도 안되야 될텐데 이거는 왜 되는걸까요..?? 제 개념이 잘못되어있는거 같은데 어느 부분이 잘못되어있는건지 궁금합니다 ㅜㅜ

답변 1

2

안녕하세요?
둘을 다르게 받아들이기 때문입니다.
int sum,num = 0;
으로 선언하시면 sum은 초기화가 되지 않습니다.

푸레님의 프로필 이미지
푸레

작성한 질문수

질문하기