본문 바로가기

IT/C언어 강의 (중단)

C언어 강의 6강- 서식문자 %d 와 변수

C언어 강의 6강- 서식문자 %d 와 변수


5강에 이어서 6강에서 다룰 내용은 서식문자 %d 와 변수에 관한 내용입니다.


5강을 정독하셨다면 아래와 같은 소스코드가 이해가 되실겁니다.


#include <stdio.h>


int main(void)

{

printf("궁금하면 %d원  \n",1000);

return 0;

}




하지만 이런 의문을 품게 될거에요 굳이 %d를 안쓰고도 궁금하면500원 이라고 입력해도되는데 왜 굳이 %d를 쓰면서 저렇게 힘들게 표기를 할까?


라는 생각이 드실수가 있습니다.


정상적인 생각입니다. 당연히 그런 의문이 드실꺼에요.


이게 왜 그런지 이유를 알고싶으시면 바로 변수 라는 것을 알아야 합니다.


변수란 쉽게 말해서 변하는 수 라고 보시면 됩니다.


무슨 말이냐 하면 만약 그냥 궁금하면 500원이라고 기재를 해버리면 500이라는 값은 바뀌는 값이 아니죠. 그냥 문자가 되버립니다.


하지만 값을 정해놓고 그 값을 언제든지 수정하면서 쓸수 있다면 어떻게 될까요? 이해가 잘 안가시죠? 아래와 같은 경우입니다.


6-1.txt



#include <stdio.h>


int main(void)

{

int val;

        val = 1000;


printf("궁금하면 %d원  \n", val);

return 0;

}




val 이라는 것이 바로 변수입니다.


printf 문을 보시면 1000 대신에 val 이 들어가있는거 보이시나요?


바로 이 val이 변수입니다.


차례대로 설명을 해 드리도록 할께요.


int val; 이라는 문장 보이시죠?


여기서 int val 이라는 것은 바로 val이라는 이름을 가진 변수를 사용하겠다고 선언한다! 라는 뜻입니다.


val 은 말그대로 제가 사용하고 싶은 이름이고요 val 대신 hello 을 넣어도되고 pretty를 넣어도되고 원하시는 단어를 쓰시면 됩니다.


예를 들어 int pretty; 라고 한다면 pretty 라는 변수를 사용하겠다는 선언이 됩니다.


이해가 가나요? 쉽게 말해 int는 변수를 사용하곘다는 선언이 되는데요. val 은 사용하는 이름이 되는것 이고 마지막에 쓰는 


; 표시는 명령어의 종료 즉 문장의 끝을 알리는 것입니다. 


main 함수에서도 return 0; 을 사용할떄 마지막에 ;를 사용하였었고 printf문에서도 마지막에 ;를 사용했죠? 모든 문장의 끝에는 ;이 온다고 기억하시면 됩니다.



자 그럼 int val; 은 val이라는 변수를 사용하겠다 라는 선언이 되고요. 그밑에 val = 1000; 이라는 문장이 있는데요.


이 문장의 뜻은 방금 내가 선언한 val이라는 변수 값을 1000으로 지정하겠다 라는 뜻이 됩니다.


그럼 val에는 1000이라는 값이 들어가게 되는거에요.


그렇게 되면 printf문을 사용할때 1000 대신 변수를 사용하면 됩니다.


다른 예제를 하나 볼께요.


#include <stdio.h>


int main(void)

{

int val;

val= 1000;


printf("궁금하면 %d원  \n",val);


val = 2000;


printf("궁금하면 %d원  \n", val);


val = 2000 + 3000;

printf("궁금하면 %d원  \n", val);


return 0;

}



이 소스코드를 보시면 val 값을 중간중간에 수정해주는 것을 알수있습니다.


제가 중간에 val = 2000; 을 한 순간 val 값에는 2000이 들어가게되어서 


2번째 printf문에서는 2000이 출력된것이고요.





val = 2000 + 3000;


은 결국 5000이 되겠죠?


그렇기 때문에 val 값은 5000이 되어서 세번째 프린트에프문에서는 변수가 5000이 되어 5000이 출력되게 되는 것입니다.


이해가 가시나요? 


이제 왜 %d를 사용하는지 서식문자의 존재이유가 무엇인지 


그리고 변수가 무엇인지 아실거라고 생각합니다.


여기서 추가적으로 또 한 가지 더 알려드린다면 


만약 int val; 을 한 후에 


val 값을 지정해주지 않고 그냥 int val; 만 한후 val을 사용하게 되면 어떻게 되나요?


라고 궁금해 하시는 분들이 계실수도 있으실텐데요.


그렇게 되면 저희가 5강에서 다뤘던 거처럼 val 값은 랜덤값이 들어갑니다.


쉽게말해 의미없는 값이 자동으로 들어가게되는것이죠


6강은 여기서 마치도록 하겠습니다. 궁금하신 사항은 댓글 또는 방명록 통해서 남겨주시면 제가 확인후 댓글 달아드리도록 하겠습니다.


감사합니다.