alt

새 노트

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'
short16비트 정수-32768 ~ 32767
long32비트 이상 정수-2147483648 ~ 2147483647
long long64비트 정수-9223372036854775808 ~ 9223372036854775807
  • 선언: int x; → 메모리 할당만, 값은 초기화되지 않음
  • 초기화: int x = 10;

5. 대입 vs 비교

  • 대입: x = 10;x에 10 저장
  • 비교: if (x == 10)x가 10인지 검사
  • 혼동 방지: === 구분 필수

6. 증감 연산자

  • x++x = x + 1 (후위)
  • ++xx = x + 1 (전위)
  • x--, --x 동일하게 1 감소

7. 포맷 지정자와 printf

지정자의미예시
%d10진 정수printf("%d", 42);
%f실수(소수점)printf("%f", 3.14);
%c문자printf("%c", 'A');
%s문자열printf("%s", "Hello");
%x16진수(소문자)printf("%x", 255);
%X16진수(대문자)printf("%X", 255);
%o8진수printf("%o", 255);
%n출력된 문자 수 저장int cnt; printf("%d%n", 123, &cnt);
%p포인터 주소printf("%p", (void*)ptr);

8. 포맷 지정자와 scanf

지정자의미예시
%d10진 정수 입력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);
  • 주의: %ffloat에, %lfdouble에 사용.
  • scanf는 입력 버퍼에 남은 공백을 처리하기 위해 " %c"처럼 공백을 넣음.

9. Visual Studio 한글 깨짐 방지

  1. 메뉴: Tools → Options → Environment → Documents
  2. 파일 인코딩: UTF‑8 선택
  3. 적용 → 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 (%lfprintf에서도 허용, 실수형 지정자)

12. scanf 보안

  • scanf는 버퍼 오버플로우 위험이 있음 → fgets 등 안전한 대체 함수 사용 권장

핵심 요약

  • 주석은 가독성을 높이고, 전처리기는 외부 파일을 포함한다.
  • main 함수는 프로그램 시작점이며, 반환값으로 실행 상태를 알린다.
  • 변수 선언은 메모리 할당이며, 자료형에 따라 저장 용량과 범위가 달라진다.
  • 대입비교 연산자를 정확히 구분해야 하며, 증감 연산자는 값 변경에 사용한다.
  • printfscanf포맷 지정자를 이해하면 입출력에 대한 정밀한 제어가 가능하다.
  • Visual Studio에서 한글 깨짐을 방지하려면 UTF‑8 인코딩 설정을 해두는 것이 중요하다.
새 노트 | Alt