새 노트
Shared on April 16, 2026
C 프로그래밍 기초: 주석, 전처리기, 변수, 입출력
개요
- C 언어 기본 문법과 구조를 학습
- 주석 작성법, 전처리기(
#include) 사용법 main함수와 반환값, 변수 선언과 자료형- 대입(
=)과 비교(==) 연산자 차이, 증감 연산자 - 표준 입출력 함수
printf,scanf와 포맷 지정자 - Visual Studio에서 한글 깨짐 방지 설정
핵심 개념
| 항목 | 핵심 내용 |
|---|---|
| 주석 | //(단일 줄), /* … */(다중 줄) 사용<br>코드 가독성 향상, 작성 의도 명시 |
| 전처리기 | #include <stdio.h> 등<br>컴파일 전 파일 삽입 |
main 함수 | int main(void) → 프로그램 시작<br>반환값: 0(정상) / 비0(오류) |
| 자료형 | int, float, double, char 등<br>정수, 실수, 문자 저장 |
| 변수 선언 | int x, y, sum;<br>선언 시 메모리 할당 |
| 대입 vs 비교 | = : 값 저장<br>== : 두 값이 같은지 비교 |
| 증감 연산자 | x++, --y 등 |
| 포맷 지정자 | printf: %d, %f, %c, %s, %x, %o, %n<br>scanf: %d, %f, %lf, %c, %s, %n, %p |
| Visual Studio 인코딩 | Tools → Options → Environment → Documents → File Encoding → UTF‑8 설정 |
상세 노트
1. 주석
- 단일 줄:
// 주석 내용 - 다중 줄:
/* 시작 주석 */
시작과 끝은/*와*/로 감싸야 함. - 주석은 컴파일러에 의해 무시되며 코드 이해와 유지보수에 필수.
2. 전처리기
#include <stdio.h>: 표준 입출력 라이브러리 포함#include "myheader.h": 사용자 정의 헤더 포함- 전처리기는 컴파일 전에 실행되어 파일을 삽입한다.
3. main 함수
int main(void) {
/* 프로그램 본문 */
return 0; // 정상 종료
}
void→ 인자 없음<br>int→ 정수형 반환값 필요return 0;가 없으면 컴파일러가 자동으로 0 반환(일부 컴파일러는 경고)
4. 변수와 자료형
| 자료형 | 용도 | 대표 값 예시 |
|---|---|---|
int | 정수 | -10, 0, 42 |
float | 단정도 실수 | 3.14f |
double | 배정도 실수 | 2.71828 |
char | 문자 | 'A', '0' |
short | 16비트 정수 | -32768 ~ 32767 |
long | 32비트 이상 정수 | -2147483648 ~ 2147483647 |
long long | 64비트 정수 | -9223372036854775808 ~ 9223372036854775807 |
- 선언:
int x;→ 메모리 할당만, 값은 초기화되지 않음 - 초기화:
int x = 10;
5. 대입 vs 비교
- 대입:
x = 10;→x에 10 저장 - 비교:
if (x == 10)→x가 10인지 검사 - 혼동 방지:
=와==구분 필수
6. 증감 연산자
x++→x = x + 1(후위)++x→x = x + 1(전위)x--,--x동일하게 1 감소
7. 포맷 지정자와 printf
| 지정자 | 의미 | 예시 |
|---|---|---|
%d | 10진 정수 | printf("%d", 42); |
%f | 실수(소수점) | printf("%f", 3.14); |
%c | 문자 | printf("%c", 'A'); |
%s | 문자열 | printf("%s", "Hello"); |
%x | 16진수(소문자) | printf("%x", 255); |
%X | 16진수(대문자) | printf("%X", 255); |
%o | 8진수 | printf("%o", 255); |
%n | 출력된 문자 수 저장 | int cnt; printf("%d%n", 123, &cnt); |
%p | 포인터 주소 | printf("%p", (void*)ptr); |
8. 포맷 지정자와 scanf
| 지정자 | 의미 | 예시 |
|---|---|---|
%d | 10진 정수 입력 | scanf("%d", &x); |
%f | 단정도 실수 입력 | scanf("%f", &f); |
%lf | 배정도 실수 입력 | scanf("%lf", &d); |
%c | 문자 입력 | scanf(" %c", &ch); |
%s | 문자열 입력 (공백 전까지만) | scanf("%s", buf); |
%p | 포인터 주소 입력 | scanf("%p", &ptr); |
%n | 입력된 문자 수 저장 | int cnt; scanf("%d%n", &x, &cnt); |
- 주의:
%f는float에,%lf는double에 사용. scanf는 입력 버퍼에 남은 공백을 처리하기 위해" %c"처럼 공백을 넣음.
9. Visual Studio 한글 깨짐 방지
- 메뉴:
Tools → Options → Environment → Documents - 파일 인코딩:
UTF‑8선택 - 적용 → Visual Studio 재시작
10. 예제: 두 수의 합과 차
#include <stdio.h>
int main(void) {
int x = 20, y = 10;
int sum = x + y; // 합
int diff = x - y; // 차
printf("sum: %d\n", sum);
printf("diff: %d\n", diff);
return 0;
}
11. 실수 출력 시 주의
printf("%f", 10.5);→10.500000(기본 6자리 소수)printf("%lf", 10.5);→10.500000(%lf는printf에서도 허용, 실수형 지정자)
12. scanf 보안
scanf는 버퍼 오버플로우 위험이 있음 →fgets등 안전한 대체 함수 사용 권장
핵심 요약
- 주석은 가독성을 높이고, 전처리기는 외부 파일을 포함한다.
main함수는 프로그램 시작점이며, 반환값으로 실행 상태를 알린다.- 변수 선언은 메모리 할당이며, 자료형에 따라 저장 용량과 범위가 달라진다.
- 대입과 비교 연산자를 정확히 구분해야 하며, 증감 연산자는 값 변경에 사용한다.
printf와scanf의 포맷 지정자를 이해하면 입출력에 대한 정밀한 제어가 가능하다.- Visual Studio에서 한글 깨짐을 방지하려면 UTF‑8 인코딩 설정을 해두는 것이 중요하다.