|
질문도 깔끔하고... 의지도 좋고...
C는 학원도 좋지만, 혼자서 재미있게 독학하는 것도 괜찮습니다.
(물론, 중수이상이 되려면 새로이 나타나는 주제들에 대해 도움을 줄 수 있는
고수나 좋은 책들이 꼭 필요하긴 하지만.. )
올려주신 상황에 대해서는... C/C++ 에서 어떻게 컴파일해서 어떤 값을
표시해주는지는 위에 답변 올려주신 분의 글을 참조하시고요. (저는 그쪽엔 무지해서)
일단, printf 문에 쓰여진 %d 가 뒤에 표시하는 인자보다 많은 경우, 1:1 매칭되는 이후의
%d 에 대해서는 '쓰레기값'이 출력된다고 보시면 됩니다. 말 그대로 '쓰레기값'이기 때문에
그 값은 '그때 그때 달라요~~~'가 되겠고요.
나중에 시간이 되시면, 다시 부팅을 한 후에 동일한 프로그램을 실행시켜보거나, 다른 컴터에서
실행을 해보거나 해보세요. 분명히 다른 값을 다시 보여줄 겁니다.
푸른여우 님이 쓰신 글 :
: 제가 어제부터 C언어 공부를 시작했습니다..
:
: 늦게나마 관심이 생겨서요..^^
:
: 책에 있는 코딩을 그대로 따라하고 출력문이 나왔는데
:
: 에러는 없는데 이게 이상해서요..
:
: 다음은 코딩한거요..(책이랑 동일)
:
: #include <stdio.h>
:
: main()
:
: {
:
: int a=10, b=20, c=30, d=40;
:
: printf("a is %d b is %d c is %d d is %d\n",a,b,c,d);
:
: printf("a is %d b is %d c is %d d is %d\n",a,b,c,);
:
: printf("a is %d b is %d c is %d \n",a,b,c,d);
:
: printf("current directory is c:\\lang\\turboc\n");
:
: }
:
: 다음은 이렇게 코딩했을때 나오는 출력문..(책에 표시된것임)
:
: a is 10 b is 20 c is 30 d is 40
:
: a is 10 b is 20 c is 30 d is 56340
:
: a is 10 b is 20 c is 30
:
: current directory is c:\lang\turboc
:
: 다음은 제가 코딩한것 출력문
:
: a is 10 b is 20 c is 30 d is 40
:
: a is 10 b is 20 c is 30 d is 1340
:
: a is 10 b is 20 c is 30
:
: current directory is c:\\lang\\turboc
:
: 위에서 보셨다싶이 출력문이 다릅니다. 이 예문의 목적이 인수의 갯수만큼 %변환문자도 동일한 갯수가 있어야 한다인데..
:
: 그럼 두번째줄의 출력문 숫자가 다르게 나온것은 단순한 에러라고 보면 되는지요?
:
: 그리고 첫째줄이 올바른것이고 밑에 두줄이 틀린거라면 마지막줄의 a,b,c가 제대로 출력되는 이유는 무엇인지 궁금합니다..
:
: 답변 정말 부탁드립니다!!
: 메일로 답변주심 넘넘 감사하겠습니다!
: 이게 어려운데 쫌 재미있어서..ㅎㅎ
: 그리고 형편상 학원은 갈수없어서 그런데 독학하는 방법도 좀 가르쳐 주시면 감사하겠습니다!m(__)m
|