문법관련/C
4. 변수 선언 및 초기화
kkkkk1023
2024. 6. 3. 18:13
쓰레기 값
메모리 내부에는 쓰레기 값이 저장되어있다.
→ 메모리는 우리만 사용하는 것이 아니라 다른 프로그램들이 사용하기도 하는데 그때 사용되고 남겨진 값들을 쓰레기 값이라고 한다.
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)
대입 연산자 사용이 불가한 이유
- 대입 연산자는 자료형의 크기가 일정해야 수행할 수 있는데 비해 char 배열은 선언에 따라 크기가 달리지기 때문에 사용불가
- 배열명은 주소 상수이기에 대입 연산자 왼쪽에 사용할 수 없다.
이럴 때 strcpy라는 함수를 사용해준다