본문 바로가기
공부/C언어

[C언어] 변수 자료형과 출력 형식 지정자 완벽 정리

by 강갱갱 2025. 6. 13.

[C언어 기초] 자료형부터 변수 선언, 출력까지! 완전 정복 가이드

C언어를 처음 배우는 분들을 위해 기본 개념부터 실전에서 자주 쓰이는 출력 형식 지정자까지 꼼꼼히 정리했습니다. 이 글을 통해 변수의 자료형, 변수 이름 규칙, 그리고 출력할 때 사용하는 형식 지정자까지 한 번에 익혀보세요.


1. 자료형 (Data Types)

자료형은 변수에 저장할 데이터의 종류와 크기를 결정합니다. C언어에서 자주 사용하는 기본 자료형을 알아봅시다.

1-1. 정수형 (Integer Types)

  • short : 2바이트 (16비트), -32,768 ~ 32,767 범위
  • int : 4바이트 (32비트), -2,147,483,648 ~ 2,147,483,647 범위
  • long : 4바이트 (32비트), 보통 int와 동일 (환경에 따라 다름)
  • long long : 8바이트 (64비트), 아주 큰 정수 저장 가능

1-2. 부동소수점형 (Floating Point Types)

  • float : 4바이트, 단정도 실수 (소수점 포함 숫자)
  • double : 8바이트, 배정도 실수 (float보다 더 정밀함)
  • long double : 8바이트 이상, 플랫폼에 따라 다르지만 double보다 더 큰 정밀도

1-3. 문자형 (Character Type)

  • char : 1바이트, 하나의 문자 저장 (예: 'A', '가')

2. 정적 타입 vs 동적 타입

프로그래밍 언어는 변수의 자료형을 결정하는 시점에 따라 두 가지로 나눌 수 있습니다.

구분 정적 타입 (Static Typing) 동적 타입 (Dynamic Typing)
자료형 결정 시점 컴파일 시 (프로그램 실행 전에 자료형이 고정됨) 실행 시 (프로그램이 실행될 때 자료형이 결정됨)
예시 언어 C, C++, Java, Rust 등 Python, JavaScript, Ruby 등
장점 오류를 미리 잡을 수 있어 안정적이고 빠름 유연성이 높아 빠른 프로토타입 작성 가능
단점 코드 작성 시 자료형을 명확히 써야 하므로 번거로울 수 있음 자료형 오류가 실행 중 발생할 수 있어 예기치 않은 버그가 생김

참고: C언어는 정적 타입 언어이므로 변수 선언 시 반드시 자료형을 명시해야 합니다.


3. 변수 이름 짓기 규칙

변수 이름은 코드를 읽기 쉽게 하는 중요한 요소입니다. C언어의 변수 이름 규칙은 다음과 같습니다.

  • 알파벳(a~z, A~Z), 숫자(0~9), 밑줄(_) 문자 사용 가능
  • 단, 변수 이름은 숫자로 시작할 수 없습니다. (예: 1 num ❌, num1 ✅)
  • 대문자와 소문자를 구분합니다. (numNum은 다른 변수)
  • C언어 예약어(키워드)는 변수 이름으로 사용할 수 없습니다. (int, for, return 등)

예시:

  • int age; — 유효한 변수명
  • float _weight; — 밑줄로 시작 가능
  • char name1; — 숫자가 변수명 중간에 올 수 있음

4. 연산자 및 주소 연산자(&)

= 연산자는 오른쪽 값을 왼쪽 변수에 대입할 때 사용합니다.

int a = 10;  // 변수 a에 10을 저장

& 연산자는 변수의 메모리 주소를 구할 때 사용합니다. 주로 포인터와 함께 씁니다.

int a = 10;
printf("a의 주소는 %p\n", &a);

5. 출력 형식 지정자 (Format Specifiers)

C언어에서 printf() 함수를 사용할 때 변수 타입에 따라 적절한 형식 지정자를 써야 합니다. 아래 표를 참고하세요.

형식 지정자 자료형 예시
%d int printf("%d", 123); → 123 출력
%hi short printf("%hi", (short)10);
%ld long printf("%ld", 100000L);
%lld long long printf("%lld", 10000000000LL);
%f float printf("%f", 3.14159f);
%lf double printf("%lf", 3.1415926535);
%c char printf("%c", 'A');
%s 문자열 (char 배열) printf("%s", "Hello");
%zu size_t (sizeof 함수 결과) printf("%zu", sizeof(int));

6. 필드 폭(Width)과 정밀도(Precision) 조절

출력할 때 숫자나 문자열의 자릿수를 조절하는 방법입니다. 보통 출력 결과를 보기 좋게 정렬할 때 씁니다.

  • %10d : 폭 10칸 확보, 숫자는 오른쪽 정렬
  • %-10d : 폭 10칸 확보, 왼쪽 정렬
  • %. 3f : 소수점 이하 3자리까지만 출력 (반올림 포함)
  • %10.3f : 총 폭 10칸, 소수점 이하 3자리, 오른쪽 정렬
  • %-10.3f : 총 폭 10칸, 소수점 이하 3자리, 왼쪽 정렬

예시

printf("|%10d|\n", 123);     // 출력: |       123|
printf("|%-10d|\n", 123);    // 출력: |123       |
printf("|%.3f|\n", 3.14159);  // 출력: |3.142|
printf("|%10.3f|\n", 3.14159); // 출력: |     3.142|
printf("|%-10.3f|\n", 3.14159); // 출력: |3.142     |

7. 마치며

지금까지 C언어 변수의 자료형, 변수 이름 규칙, 그리고 출력 형식 지정자에 대해 자세히 살펴보았습니다. 이 내용을 숙지하면 기본적인 변수 선언과 출력 작업은 문제없이 수행할 수 있습니다.

다음 글에서는 변수 선언 시 초기화, 상수(const), 그리고 포인터 기초까지 다뤄보겠습니다. 꾸준히 연습해서 탄탄한 C언어 실력을 쌓아가세요!

 

반응형