728x90
반응형
scanf()함수
scanf() 함수는 C언어의 표준 입력 함수로, 사용자로부터 다양한 데이터를 다양한 서식에 맞춰 입력받을 수 있게 해준다.
scanf() 함수의 원형은 다음과 볼 수 있다.
printf에서 저장된 변수 또는 연산된 변수를 표시하는 것과 매우 유사한 형태를 가지고 있다.
여기서 f의 의미는 formatted 의 약자이며, 서식화된 입력을 받겠다는 의미를 한다.
그림에서 보는것 처럼 &a를 사용하는 이유는 변수의 형태를 그대로 가져 오는 것이 아닌 주소 값을 이용해서 값을 대입 하기 때문에 주소 값을 선언 하는 &를 이용해서 변수에 맞는 형태에 사용자 입력 값을 저장 할 수 있다.
그렇기 때문에 주솟값을 반환하는 변수인 배열에서는 &를 붙이지 않아도 scanf 나 printf는 정상적으로 변수를 출력하는 이유가 바로 이것때문이다.
다음 예제를 통해서 표시 방법에 차이를 확인 할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char fruit[20] = "";
int a = 20;
char* ptr = fruit;
printf("과일 과 숫자를 입력해주세요.\n");
scanf("%s",fruit);
scanf("%d", &a);
printf("딸기 : %s\n", &fruit[2,5]);//주소형 출력을 통해 배열 일부분만 가져오도록 한다.
printf("딸기쩀 : %s %s\n", fruit, "jam");//문자열을 직접 출력 할 수 있다.
printf("좋아하는 과일 : %s\n", fruit);//배열명을 올려주는것만으로 전체 데이터를 가져올 수 있다.
printf("좋아하는 숫자 : %d\n", a);//배열명을 올려주는것만으로 전체 데이터를 가져올 수 있다.
return 0;
}
|
cs |
정수 변수에는 주소선언을 문자열 변수에는 주소선언 없이 진행 되어도 아래와 같이 정상적으로 실행된다.
그러니 각 변수 형태별 반환 형식이 매우 중요하며 각 함수들이 받아주는 형식에 대해서 레퍼런스를 참고하는 것이 매우 중요하다.
728x90
반응형
'프로그래밍 study > C언어' 카테고리의 다른 글
CH4 산술 관계 논리 연산자 (0) | 2022.03.24 |
---|---|
CH3 변수 (0) | 2022.03.21 |
CH1 프로그램 언어 C 컴파일 과정 (0) | 2022.03.18 |
CH2 C언어 상수와 데이터 출력 (0) | 2022.03.18 |