꾸꾸리

3-3. scanf와 C언어의 키워드 본문

Programming Language/C

3-3. scanf와 C언어의 키워드

O773H 2018. 7. 18. 15:07
728x90

1-1. 정수입력을 위한 scanf함수의 호출


scanf함수를 이용하면 키보드로부터 다양한 형태의 데이터를 입력 받을 수 있다.

우선은 정수의 입력에 대해 알아보자.


1
2
3
4
5
int main(void)
{
    int num;
    scanf("%d"&num);    // 키보드로 입력한 정수를 변수 num에 저장한다.
}
cs


키보드로부터 데이터를 입력받으려면, 데이터의 종류에 맞게 메모리 공간을 미리 할당해야 한다. 따라서 위 코드에서는 scanf함수 호출에 앞서 변수 num을 선언하고 있다.

이어서 scanf 함수를 호출하면서, 두 번째 인자로 num을 넘겨주고 있다.(변수 num 앞에 & 연산자가 붙어있음에 주목)


앞 부분에서 printf함수를 소개하면서 %d가 서식문자이고, 이것이 '10진수 정수형태의 출력'을 의미함을 설명했다.

scanf함수에서는 %d가 '10진수 정수형태의 입력'을 의미한다. printf는 출력, scanf는 입력 임을 알아두자.


[참고] 변수 num 앞에 붙은 & 연산자

변수 num 앞에 & 연산자를 붙이는 이유는 이후에 포인터와 함수에 대해 깊게 공부한 다음에야 이해할 수 있는 내용이다.

아직은 이해할 수 있는 내용이 아니니 'scanf 함수의 호출을 위해서는 입력된 데이터를 저장할 변수 이름의 앞에 & 연산자를 붙여야 한다'는 사실만 기억하고 있자.


1-2. 여러 개의 데이터를 입력받기


scanf 함수를 이용하면 한 번에 여러개의 데이터를 입력 받는 것이 가능하다.


1
2
3
4
5
6
int main(void)
{
    int num1, num2,num3;
 
    scanf("%d %d %d"&num1, &num2, &num3);        // 3개의 10진수 정수 입력
}
cs


위의 코드에서 5행을 살펴보면, 10진수 정수형 데이터를 셋 입력 받아서 순서대로 변수 num1, num2, num3에 저장함을 알 수 있다.

여기서 scanf함수는 공백을 기준으로 데이터를 구분하기 때문에, 3개의 정수 사이에 스페이스바, 탭(tab) 또는 엔터(enter)키를 입력해야 한다.


참고로 우리는 %d대신에 다른 서식문자를 이용하면 10진수 정수형 데이터 외에도 다양한 종류의 데이터를 입력받을 수 있는데,

아직은 공부한 서식문자가 %d밖에 없으니 '다양한 유형의 데이터 입력'은 다음 기회에 확인하도록 하자.


2-1. C언어의 표준 키워드(Keyword)


앞서 소개한 int, return과 같은 단어들은 이미 그 기능적 의미가 정해져있다. 이렇듯 기능적 의미가 정해져서 C언어의 문법을 구성하는 단어들을 가리켜 '키워드(keyword)'라 한다. C언어에서 정의하고 있는 키워드를 정리하면 다음과 같다.


auto 

_Bool 

break 

case 

char 

_Complex 

 const

continue 

default 

do 

double 

else 

 enum

extern 

float 

for 

goto 

if 

 _Imaginary

return 

restrict 

short 

signed 

sizeof 

 static

struct 

switch 

typedef 

union 

unsigned 

 void

volatile 

while 

 

 

 


이러한 키워드들은 대부분 앞으로 공부하게 될 것들인데, 참고로 키워드들은 변수나 함수의 이름으로 사용할 수 없다.

즉, 이미 그 용도가 결정된 단어로, 다른 용도로 사용할 수 없도록 제한되어있다.

728x90