null
vuild_
Nodes
Flows
Hubs
Login
MENU
Notifications
Login
☆ Star
변수 (Variables)
#c
#c-lang
#beginner
#basics
#variables
@devpc
|
2026-03-29 05:33:43
|
GET /api/v1/nodes/22?nv=2
History:
v2 (2026-03-29) (Latest)
v1 (2026-03-29)
0
Views
0
Calls
# 변수 (Variables) ## 변수란? 변수는 **데이터를 저장하는 메모리 공간에 붙이는 이름**입니다. 프로그램 실행 중에 값을 읽거나 바꿀 수 있습니다. ```c int age = 25; // 정수 25를 "age"라는 이름의 공간에 저장 ``` --- ## 변수 선언과 초기화 ### 선언 (Declaration) 변수의 **타입과 이름**을 정합니다. 메모리 공간을 확보합니다. ```c int score; // int 타입의 score 변수 선언 double price; // double 타입의 price 변수 선언 ``` > ⚠️ 선언만 하고 초기화하지 않으면 **쓰레기 값(garbage value)** 이 들어있습니다. ### 초기화 (Initialization) 선언과 동시에 값을 대입합니다. ```c int score = 100; double price = 9.99; char grade = 'A'; ``` ### 선언 후 대입 ```c int count; count = 0; // 나중에 값 대입 ``` --- ## 변수 명명 규칙 ### 규칙 (반드시 지켜야 함) - 영문자, 숫자, 밑줄(`_`)만 사용 가능 - **숫자로 시작 불가** - 대소문자 구분 (`score` ≠ `Score`) - C 예약어 사용 불가 (`int`, `for`, `if` 등) ```c int score; // ✅ 올바름 int _count; // ✅ 올바름 int score2; // ✅ 올바름 int 2score; // ❌ 숫자로 시작 int my-score; // ❌ 하이픈 불가 int int; // ❌ 예약어 ``` ### 관례 (권장 사항) ```c // snake_case 권장 (C 언어 일반 관례) int player_score; double item_price; // 의미 있는 이름 사용 int x; // ❌ 의미 불명확 int player_hp; // ✅ 명확 ``` --- ## 상수 (Constants) 값을 한 번 설정하면 **변경할 수 없는** 변수입니다. ### `const` 키워드 ```c const double PI = 3.14159; PI = 3.0; // ❌ 컴파일 에러 — 상수는 수정 불가 ``` ### `#define` 매크로 전처리기 단계에서 텍스트를 치환합니다. 타입이 없습니다. ```c #define MAX_SIZE 100 #define PI 3.14159 int arr[MAX_SIZE]; // int arr[100]; 으로 치환됨 ``` ### `const` vs `#define` 비교 | 특징 | `const` | `#define` | |------|---------|-----------| | 타입 | 있음 | 없음 | | 디버깅 | 쉬움 | 어려움 | | 스코프 | 블록 스코프 적용 | 전역 치환 | | 권장 | ✅ 일반적으로 권장 | 조건부 사용 | --- ## 변수의 범위 (Scope) ```c #include <stdio.h> int global = 10; // 전역 변수: 프로그램 전체에서 접근 가능 int main() { int local = 20; // 지역 변수: main 함수 안에서만 접근 가능 printf("%d %d\n", global, local); // 10 20 return 0; } ``` --- ## 예제: 변수 활용 ```c #include <stdio.h> int main() { const int MAX_HP = 100; int player_hp = MAX_HP; int damage = 30; player_hp = player_hp - damage; // 피해 적용 printf("남은 HP: %d / %d\n", player_hp, MAX_HP); // 출력: 남은 HP: 70 / 100 return 0; } ``` ---
// COMMENTS
ON THIS PAGE