변수 초기화에 따른 대한 궁금증
사랑
질문 제목 :
변수 초기화에 따른 대한 궁금증
질문 요약 :
변수,이름 선언만 된 변수를 %c로 입력하고 %d로 출력하면 쓰레기값이 나온다.
변수,이름, 메모리값(크기) 선언된 변수는 %c로 입력하고 %d로 출력하면 정확한 아스키코드값(10)이 나온다.
변수,이름 선언만 된 변수를 %d로 입력하고 %c로 출력하면 정확한 값이 나온다정확히 이렇게 되는 이유를 설명해주실수 있는분 계신가요?
질문 내용 :
변수만 선언한것과, 변수를 선언하고 초기화를 해준값의 영향이 다릅니까?
- 이름만 있는 변수가 A와, 이름과 크기를 할당해준것이 B라고 했을때,A
int a=0, b=0, c=0;
scanf(%c %c %c, &a, &b, &c)
printf(%d %d %d, a, b, c);라고 한다면 입력된 문자에 대해서 정수로 잘 출력을 해줄수있음을 알수있습니다.하지만...
B
int a, b, c;
scanf(%c %c %c, &a, &b, &c)
printf(%d %d %d, a, b, c);라고 한다면 변수에 이름만 선언해준체, 메모리크기가 할당되지않았기때문이라는 당연한 내용인가요?변수만 선언한것과, 변수를 선언하고 초기화를 해준값의 영향이 다릅니까?
- 이름만 있는 변수가 A와, 이름과 크기를 할당해준것이 B라고 했을때, int a, b, c;
scanf(%d %d %d, &a, &b, &c)
printf(%c %c %c, a, b, c);하지만 그와 반대로 입력값이 %c라는 서식문자가 아닌 %d라는 정수를 입력받을땐
변수에 이름만 선언되어있어도 정확하게 문자를 출력하는것을 확인할수있었습니다.정리를 해보면...변수,이름 선언만 된 변수를 %c로 입력하고 %d로 출력하면 쓰레기값이 나온다.
변수,이름, 메모리값(크기) 선언된 변수는 %c로 입력하고 %d로 출력하면 정확한 아스키코드값(10)이 나온다.
변수,이름 선언만 된 변수를 %d로 입력하고 %c로 출력하면 정확한 값이 나온다.
정확히 이렇게 되는 이유를 설명해주실수 있는분 계신가요?
그냥 이해도 필요없이 변수에 아무렇게든 초기화를 해주면 되는 실없는 궁금증입니까?처음나오는 부분인데 궁금증이 생겨서 질문드려봅니다.