1장 입력과 출력
3부 입력하기
3부 입력하기
저번시간 변수와 출력하기에 대해서 간단하게 배워 보았습니다.
이제 출력 다음에 하는 입력하기를 배워 볼껀데요.
출력하기 보다는 난이도가 있는 내용이기 때문에
이해를 잘 하셔야 될 것 같습니다.
먼저 입력함수의 종류를 보게 되면
scanf, getc, gets, getch, fgets등 많이 존재하게 됩니다.
이 중에서 scanf에 대해서 다뤄 보도록 하겠습니다.
다른 입력함수는 아마 이 강좌가 다 끝나게 되면
혼자서 공부를 하실 때 자연스럽게 사용을 하실수 있을 것입니다.
먼저 scanf의 원형을 보게 되면
int scanf(const char * , ......)
입니다. 이 부분도 그냥 이렇게 생겼구나 라고만
느끼시고 넘어 가시면 될 겁니다.
이 입력 부분에서는 전시간에 배웠던 변수라는 개념을
꼭 사용하게 되는데요.
그 개념에 대해서 다시 한번 설명을 해 보겠습니다.
전 강의에서 설명을 하였기 때문에 여기에서는
예를 들어 설명을 하겠습니다.
먼저 int integer; 라는 변수를 선언을 하는 겁니다.
그럼 자료형이 int이기 때문에 이 int 자료형 크기만큼 메모리에 할당이 됩니다.
보통 int형의 크기는 4바이트기 때문에 4바이트라고 가정을 하고, 그리고
우리가 번지를 알수는 없지만, 설명을 위해서 번지를 임의적으로 정하여 보겠습니다.
메모리번지 10000~10003 번지에 할당이 되었다고 가정을 합니다.
그럼 이 번지에 다가 넣으면 됩니다. 하지만
이렇게 10000~ 10003 번지를 우리가 하나하나 외울수 없기 때문에,
integer라는 변수명으로 접근이 가능 한 겁니다.
즉, integer라는 변수는 여기에서 10000번지를 가지고 있답니다.
대충 이해가 가셨는지 모르겠네요.
이게 변수 입니다.
여기에서 제가 왜 이렇게 어려운 메모리에 대해서 적었나 하면,
입력은 메모리 주소를 알아야 되거등요.
즉, 우리가 입력을 한 것을 넣을 주소를 알아야 한다는 거죠.
그럼 integer가 가지고 있는 주소를 알려면 어떻게 해야 되는지 알아야 겠죠!?
그걸 알기 전에 먼저 간단하게 입력함수를 만들어 보겠습니다.
다른 부분은 쓰질 않고 변수와 입력함수만 쓰도록 하겠습니다.
int integer;
scanf("%d", &integer);
이렇게 사용하게 됩니다.
여기를 보면 다 출력함수를 공부할 때 보던 것들이라 이해가 될 것이지만
'&' 이 기호는 처음 보는 것일 겁니다.
이 기호가 바로 위에서 말했던 변수의 주소를 알 수 있는 연산입니다.
즉, &integer를 하면 integer가 가지고 있는 주소를 알게 되는 거죠
그럼 integer와 &integer의 차이점에 대해서 간단하게 알아보겠습니다.
integer는 값을 나타내는 것이고,
&integer는 integer가 가지고 있는 주소를 나타내는 겁니다.
그럼 왜 &integer 써야 하냐면,
값을 저장할 주소를 알아야 되기때문에,
&을 사용 한 겁니다.
만약
int integer = 5;
printf("%d", integer);
printf("%d", &integer);
이렇게 소스를 적고 출력을 시킨다면
첫번째 출력에는 5가 출력 되지만
두번째 출력에는 5가 아닌 5가 저장되어 있는 메모리 상의 주소가 출력되게 되는 것입니다.
오늘 강의로써 입력과 출력에 대한 기본적인 개념과 사용에 대해서
배웠습니다.
다음 강의는 자료형에 대해서 배워 볼껀데요.
다음 강의로 넘어 가기 전에 지금 까지 배웠던 입력 출력에 대한 문제를
한번 보고 넘어 가도록 하겠습니다.
===========================================
#include <stdio.h>
int main()
{
int integer;
printf("출력할 숫자를 넣으세요 : ");
scanf("%d", &integer);
printf("입력 한 숫자는 : %d\n", integer);
return 0;
}
===========================================
즉, &integer를 하면 integer가 가지고 있는 주소를 알게 되는 거죠
그럼 integer와 &integer의 차이점에 대해서 간단하게 알아보겠습니다.
integer는 값을 나타내는 것이고,
&integer는 integer가 가지고 있는 주소를 나타내는 겁니다.
그럼 왜 &integer 써야 하냐면,
값을 저장할 주소를 알아야 되기때문에,
&을 사용 한 겁니다.
만약
int integer = 5;
printf("%d", integer);
printf("%d", &integer);
이렇게 소스를 적고 출력을 시킨다면
첫번째 출력에는 5가 출력 되지만
두번째 출력에는 5가 아닌 5가 저장되어 있는 메모리 상의 주소가 출력되게 되는 것입니다.
오늘 강의로써 입력과 출력에 대한 기본적인 개념과 사용에 대해서
배웠습니다.
다음 강의는 자료형에 대해서 배워 볼껀데요.
다음 강의로 넘어 가기 전에 지금 까지 배웠던 입력 출력에 대한 문제를
한번 보고 넘어 가도록 하겠습니다.
===========================================
#include <stdio.h>
int main()
{
int integer;
printf("출력할 숫자를 넣으세요 : ");
scanf("%d", &integer);
printf("입력 한 숫자는 : %d\n", integer);
return 0;
}
===========================================
'C Language > Programming Course' 카테고리의 다른 글
2장 연산자(1부 개요) 첫번째 시간 (0) | 2009.06.22 |
---|---|
1장 입력과 출력(4부 문제 풀기) 첫번째 시간 (0) | 2009.06.05 |
1장 입력과 출력(2부 변수 & 출력하기) 두번째 시간 (0) | 2009.05.26 |
1장 입력과 출력(2부 변수 & 출력하기) 첫번째 시간 (0) | 2009.05.09 |
1장 입력과 출력(1부 출력하기) 두번째 시간 (0) | 2009.05.06 |