변수의 초기화
정의
선언한 변수에 대해 처음으로 값을 할당하는 과정
변수에 의미 있는 첫 번째 값을 부여하는 과정이다.
1
2
3
4
5
6
// 변수 선언 후 초기화
int a ;
a = 10 ;
// 변수 선언과 동시에 초기화
int b = 20 ;
변수의 초기화를 하지 않으면
지역변수 : 쓰레기 값이 해당 변수의 초기 값으로 할당됨.
전역변수/정적변수 : 자동으로 0 또는 0.0 또는 널 포인터로 초기화 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int global_var ;
void global_not_initialized (){
printf ( "not initialized global var : %d \n " , global_var );
}
void local_not_initialized () {
int local_var ;
printf ( "not initialized local var : %d \n " , local_var );
}
int main () {
global_not_initialized ();
local_not_initialized ();
return EXIT_SUCCESS ;
}
1
2
3
# 출력
not initialized global var : 0
not initialized local var : 2
쓰레기 값 Garbage Value
지역 변수를 명시적으로 초기화하지 않았을 때 해당 변수에 할당되는 의미 없는 값.
쓰레기 값의 정체는 메모리의 잔재 이다.
메모리의 잔재 : 변수가 할당된 메모리 공간에 이전에 저장되어 있던 데이터.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void not_initialized_sum (){
int i , sum ;
for ( i = 1 ; i <= 10 ; i ++ ){
sum = sum + i ;
}
printf ( "초기화 안됨 : 1부터 10까지의 합 = %d \n " , sum );
}
void initialized_sum (){
int i , sum = 0 ; // 초기화 (같은 자료형에 같은 값을 넣을 경우 이런 식으로도 초기화 가능)
for ( i = 1 ; i <= 10 ; i ++ ){
sum = sum + i ;
}
printf ( "초기화 됨 : 1부터 10까지의 합 = %d \n " , sum );
}
int main () {
not_initialized_sum ();
initialized_sum ();
return EXIT_SUCCESS ;
}
1
2
3
# 출력
초기화 안됨 : 1부터 10까지의 합 = 17047831
초기화 됨 : 1부터 10까지의 합 = 55
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Tags:
c ,
clang ,
c언어 ,
garbage ,
garbagevalue ,
initial ,
initialization ,
initialize ,
value ,
variable ,
값 ,
변수 ,
쓰레기 ,
쓰레기값 ,
언어 ,
초기화
Categories:
clang
Updated: 2025-11-d
Comments