#include <stdio.h>
int main()
{
int a;
printf("a 변수에는 10 이 저장되어 있습니다.");
return 0;
}
위의 코드는 a 변수의 값을 출력하기 위해 작성한 것입니다. 그런데, 아래의 코드처럼 수정하면 어떻게 될까요?
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("a 변수에는 10 이 저장되어 있습니다.");
return 0;
}
5번 라인의 scanf("%d", &a); 는 10진 정수를 키보드로 입력받아 변수 a에 저장하라는 의미입니다. 이때 큰 따옴표 안에 있는 %d는 입출력 제어 문자로서 키보드와 메모리 간의 입력 통로 역할을 합니다. 다만, 그 입력 통로에는 10진 정수가 들어가야 합니다. 다른 값, 즉, 소숫점이 있는 실수 등이 들어가면 잘못된 값으로 변합니다.
그리고, &a는 변수 a의 주소를 의미합니다. scanf() 함수를 사용하기 위해서는 항상 변수가 있는 메모리의 주소를 알려줘야 합니다. (지금은 이 정도만 알고 넘어 가도 됩니다.)
그럼, 본론으로 돌아가서...
위 코드의 문제점은 변수 a에 어떤 값이 입력되든지 간에 문자열은 항상 "a 변수에는 10 이 저장되어 있습니다."라고 출력된다는 것입니다.
그렇다면, a 변수의 값 자체를 출력할 수 있어야 합니다. 이때 필요한 것이 역시 '입출력 제어 문자' 입니다.
입출력 제어 문자는 %로 시작합니다. 만약, 정수형 변수의 값을 입력 받거나 출력하려면 %d를 사용해야 합니다.
여기서 d 는 decimal(10진)의 약자입니다.
즉, 아래의 코드처럼 고쳐야 입력된 a 변수의 값이 올바르게 출력됩니다.
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("a 변수에는 %d 이(가) 저장되어 있습니다.", a);
return 0;
}
이 문제는 간단해 보이지만, C언어를 처음 배우는 사람에게는 많은 것들을 담고 있습니다.
위의 코드는 a 변수의 값을 출력하기 위해 작성한 것입니다. 그런데, 아래의 코드처럼 수정하면 어떻게 될까요?
5번 라인의 scanf("%d", &a); 는 10진 정수를 키보드로 입력받아 변수 a에 저장하라는 의미입니다. 이때 큰 따옴표 안에 있는 %d는 입출력 제어 문자로서 키보드와 메모리 간의 입력 통로 역할을 합니다. 다만, 그 입력 통로에는 10진 정수가 들어가야 합니다. 다른 값, 즉, 소숫점이 있는 실수 등이 들어가면 잘못된 값으로 변합니다.
그리고, &a는 변수 a의 주소를 의미합니다. scanf() 함수를 사용하기 위해서는 항상 변수가 있는 메모리의 주소를 알려줘야 합니다. (지금은 이 정도만 알고 넘어 가도 됩니다.)
그럼, 본론으로 돌아가서...
위 코드의 문제점은 변수 a에 어떤 값이 입력되든지 간에 문자열은 항상 "a 변수에는 10 이 저장되어 있습니다."라고 출력된다는 것입니다.
그렇다면, a 변수의 값 자체를 출력할 수 있어야 합니다. 이때 필요한 것이 역시 '입출력 제어 문자' 입니다.
입출력 제어 문자는 %로 시작합니다. 만약, 정수형 변수의 값을 입력 받거나 출력하려면 %d를 사용해야 합니다.
여기서 d 는 decimal(10진)의 약자입니다.
즉, 아래의 코드처럼 고쳐야 입력된 a 변수의 값이 올바르게 출력됩니다.