null
vuild_
Nodes
Flows
Hubs
Login
MENU
Notifications
Login
☆ Star
자료형 (Data Types)
#c
#c-lang
#beginner
#basics
#data-types
@devpc
|
2026-03-29 05:33:43
|
GET /api/v1/nodes/23?nv=2
History:
v2 (2026-03-29) (Latest)
v1 (2026-03-29)
0
Views
0
Calls
# 자료형 (Data Types) ## 자료형이란? 자료형은 **변수에 저장할 데이터의 종류와 크기**를 정의합니다. C언어는 데이터 타입을 명시적으로 선언해야 합니다. --- ## 기본 자료형 ### 정수형 | 자료형 | 크기 | 범위 | 예시 | |--------|------|------|------| | `char` | 1 byte | -128 ~ 127 | 문자, 작은 정수 | | `short` | 2 bytes | -32,768 ~ 32,767 | 작은 정수 | | `int` | 4 bytes | -2,147,483,648 ~ 2,147,483,647 | 일반 정수 | | `long` | 4~8 bytes | 플랫폼 의존 | 큰 정수 | | `long long` | 8 bytes | -9.2 × 10¹⁸ ~ 9.2 × 10¹⁸ | 매우 큰 정수 | ```c char c = 'A'; short s = 32000; int i = 2147483647; long l = 100000L; long long ll = 9000000000LL; ``` ### 부호 없는 정수형 (unsigned) 음수가 필요 없을 때 사용하면 양수 범위가 두 배가 됩니다. ```c unsigned int ui = 4294967295U; // 0 ~ 4,294,967,295 unsigned char uc = 255; // 0 ~ 255 ``` ### 실수형 | 자료형 | 크기 | 유효 자릿수 | |--------|------|------------| | `float` | 4 bytes | 약 7자리 | | `double` | 8 bytes | 약 15자리 | | `long double` | 12~16 bytes | 약 18~19자리 | ```c float f = 3.14f; // f 접미사 필수 double d = 3.141592653; // 기본 실수형으로 double 권장 ``` --- ## sizeof 연산자 변수나 타입의 **바이트 크기**를 반환합니다. ```c #include <stdio.h> int main() { printf("char: %zu bytes\n", sizeof(char)); printf("int: %zu bytes\n", sizeof(int)); printf("long long: %zu bytes\n", sizeof(long long)); printf("double: %zu bytes\n", sizeof(double)); return 0; } ``` 출력 (64bit 환경 기준): ``` char: 1 bytes int: 4 bytes long long: 8 bytes double: 8 bytes ``` --- ## 묵시적 형변환 (Implicit Conversion) 서로 다른 자료형끼리 연산할 때 **컴파일러가 자동으로** 더 큰 타입으로 변환합니다. ```c int a = 5; double b = 2.0; double result = a + b; // int → double 자동 변환 // result = 7.0 ``` ### 정수 나눗셈 주의 ```c int a = 5; int b = 2; double result = a / b; // ❌ 결과: 2.0 (이미 정수 나눗셈 발생) double result2 = (double)a / b; // ✅ 결과: 2.5 ``` --- ## 명시적 형변환 (캐스팅, Casting) 프로그래머가 직접 타입을 변환합니다. ```c int a = 7; int b = 2; float result = (float)a / b; // a를 float으로 변환 후 나눗셈 // result = 3.5 ``` --- ## 문자형 (char) `char`는 정수형이자 문자형입니다. 내부적으로 **ASCII 코드** 값을 저장합니다. ```c char c = 'A'; printf("%c\n", c); // 문자로 출력: A printf("%d\n", c); // 정수로 출력: 65 (ASCII 코드) char next = c + 1; printf("%c\n", next); // B ``` ### 주요 ASCII 코드 | 문자 | ASCII | |------|-------| | `'0'` | 48 | | `'A'` | 65 | | `'a'` | 97 | | `' '` (공백) | 32 | --- ## 예제: 자료형 혼합 계산 ```c #include <stdio.h> int main() { int items = 3; double price = 4500.5; double total = items * price; // int × double → double printf("총 금액: %.2f원\n", total); // 출력: 총 금액: 13501.50원 return 0; } ``` ---
// COMMENTS
ON THIS PAGE