본문 바로가기
문법관련/C

4. 변수 선언 및 초기화

by print_soo 2024. 6. 3.

쓰레기 값

메모리 내부에는 쓰레기 값이 저장되어있다.

→ 메모리는 우리만 사용하는 것이 아니라 다른 프로그램들이 사용하기도 하는데 그때 사용되고 남겨진 값들을 쓰레기 값이라고 한다.

 


 

int변수 선언 및 초기화

int main() {
	int a;
}

 

위처럼 변수를 선언하면 int형은 4바이트이기 때문에 아래와 같이 메모리가 생성된다.

[    |    |    |    ]
  100  101  102  103

 

int main() {
	int a;
	a = 10;
}

 

따라서 우리는 쓰레기 값을 없애고 다른 값을 넣어줘야한다. 이게 바로 초기화라고 한다.

 

[ 0|0|0|0|0|0|0|0 | 0|0|0|0|0|0|0|0 | 0|0|0|0|0|0|0|0 | 0|0|0|0|1|0|1|0 ]
        100                101               102               103

double 변수 선언 및 초기화

int main() {
	double da;
	da = 3.5;
}

 

 

부호비트(1bit) / 지수부(11bit) / 소수부(52bit)

[ 0|1|0|0|0|0|0|0 | 0|0|0|0|1|1|0|0 | 0|0|0|0|0|0|0|0 | 0|0|0|0|1|0|1|0 | 0|0|0|0|0|0|0|0 | 0|0|0|0|0|0|0|0 | 0|0|0|0|0|0|0|0 | 0|0|0|0|0|0|0|0 ]
        200                201               202               203               204                205               206               207

 


char 변수 선언 및 초기화

int main() {
	char ch;
	ch = 'A';
}

 

char의 비트 사이즈는 8이다.

-> 그 이유는 char는 아스키 코드 값으로 번역이 되는데 아스키 코드는 0부터 127까지만 있기에 8비트 즉, 256안에서 헤결할 수 있기 때문이다.

[ 1|0|0|0|0|0|0|1 ]
        300

 

 


char 배열 변수 선언및 초기화

char str[6] = "apple";

-> [[a][p][p][l][e][\\0]]

위에서 \0은 null 값으로 문자열의 끝 값을 표시하는 값이다.

 

 

기존 배열에 다른 값 저장하기

char str[8] = "apple";

-> [[a][p][p][l][e][\\0][][]]

str = "banana"; (x)

대입 연산자 사용이 불가한 이유

  1. 대입 연산자는 자료형의 크기가 일정해야 수행할 수 있는데 비해 char 배열은 선언에 따라 크기가 달리지기 때문에 사용불가
  2. 배열명은 주소 상수이기에 대입 연산자 왼쪽에 사용할 수 없다.

이럴 때 strcpy라는 함수를 사용해준다