C언어 공부를 시작할 때 가장 먼저 배우는 것 중 하나가 바로 scanf() 함수죠. 하지만 시험 문제에서 코드로 만나면 생각보다 까다로운 녀석입니다. 특히 실기 시험 코드 해석 문제에서 서식 지정자나 주소 연산자(&)를 제대로 이해하지 못하면 억울하게 점수를 깎일 수 있어요. 제가 공부하면서 정리한 핵심 내용들을 공유해 드립니다!
📌 목차
1. scanf() 함수의 기본 문법
scanf는 사용자로부터 입력을 받아 변수에 저장하는 함수입니다. 기본 구조는 다음과 같아요.
scanf("서식지정자", &변수명);
여기서 중요한 건 변수명 앞에 & (주소 연산자)를 붙여야 한다는 점입니다. "이 변수가 있는 메모리 주소에 입력값을 넣어줘!"라는 뜻이라고 이해하면 쉽습니다.
2. 자주 쓰이는 서식 지정자
어떤 타입의 데이터를 입력받을지 알려주는 약속입니다.
- %d: 정수 10진수 (int)
- %u: 부호없는 정수 10진수
- %f: 실수 (float)
- %c: 문자 1개 (char)
- %s: 문자열 (char 배열)
3. 시험에 나오는 주의사항 (중요!)
저도 이 부분에서 많이 틀렸는데요, 시험에 나올 만한 함정 포인트 2가지를 꼭 기억하세요.
함정 1: 문자열(%s) 입력 시 &를 붙이지 않는다!
일반 변수(int, char 등)는&를 붙이지만, 배열 이름은 그 자체로 주소이기 때문에 문자열을 받을 때는&를 쓰지 않습니다.
(예:scanf("%s", str);→ 맞음 /scanf("%s", &str);→ 틀림)
함정 2: %s는 공백(띄어쓰기)을 만나면 입력을 멈춘다!
"Hello World"를 입력해도%s는 "Hello"만 저장합니다. 공백 전까지만 읽기 때문이죠.
📊 scanf() 핵심 요약 표
| 구분 | 정수/문자/실수 | 문자열(배열) |
| 지정자 | %d, %c, %f | %s |
| & 연산자 | 필수 (&num) | 제외 (str) |
| 특징 | 값 하나를 저장 | 공백 전까지만 저장 |
단순히 '입력받는 함수'라고만 외웠을 때는 몰랐는데, 직접 코드를 짜보거나 문제를 풀다 보니 & 기호 하나가 프로그램 전체의 성패를 가르는 것 같네요. 특히 배열과 포인터 개념이 섞여 나오는 정처기 시험에서는 이 작은 차이가 합격을 결정할 수 있다는 걸 체감했습니다. 기본일수록 더 단단하게 다져야겠어요 :)
[정보처리기사 필기] EQUI JOIN 정의와 SQL 예시 핵심 정리
SQL을 공부하다 보면 JOIN이 여러 종류로 나뉘어 보여서 헷갈리기 시작합니다. 하지만 정보처리기사 시험에서 자주 나오는 흐름은 단순합니다. “두 테이블을 같은 값으로 연결한다”는 감각을
think.1prorich.com
'정보처리기사' 카테고리의 다른 글
| [정처기/C언어] 아스키코드(ASCII) 암기 필수 리스트 (0) | 2026.01.14 |
|---|---|
| [정처기/C언어] printf 함수 완벽 가이드 | 출력 서식과 이스케이프 시퀀스 정리 (0) | 2026.01.13 |
| [정처기 필기] DAS vs NAS vs SAN 스토리지 특징 차이점 비교 정리 (0) | 2026.01.11 |
| [정보처리기사 필기] 화이트박스 vs 블랙박스 테스트 정리: 애플리케이션 테스트 기법 (0) | 2026.01.10 |
| [정보처리기사 필기] 프로시저, 트리거, 사용자 정의 함수 정리: 절차형 SQL 핵심 비교 (0) | 2026.01.09 |
댓글