|  |
| |
| clockmaker |
모든 메모리가 깔끔하게 NULL을 갖고 있지는 않기 때문이에요. 처음 프로그램이 변수를 선언하며 램에 가서 "야 메모리점 ㅜㅜ" 해서 받아 오면 거기엔 지저분한 쓰레기값(정크값)이 들어있어요.
#include <stdio.h>
int main() {
int a;
printf("%d \n", a);
}
라는 코드를 컴파일 해서 실행해보시면, 우리는 a에 아무 값도 안 넣었지만 이상한 값이 튀어나오는 걸 알 수 있죠. 그래서 초기화를 해 줍니다 ㅇ_ㅇ |
2011/04/16 |
|
| clockmaker |
집에 서랍장이 필요해서 가구점에 가서 샀다고 해 보면, 이거 사온 직후에는 먼지도 많고 지저분하니까 걸레로 한 번 닦아서 쓰잖아요? 그런 이치입니다. 그냥 a=3; 이렇게 대입할 때는 문제가 없지만
printf("%d \n", a+5);
같은 코드를 치면서 a는 처음 쓴 거니 0이겠지? 그럼 이건 5가 나와야 해! 라고 기대하면 안 된다는 거죠. 쓰레기 값이 있으니까요. |
2011/04/16 |
|
| /x7375696e6567 |
clockmaker님 설명에서 조그마한거 하나 알려드리자면
0 이든 스페이스바든 엔터든
컴퓨터에서는 모든 것이 값 입니다 |
2011/04/17 |
|
| /x7375696e6567 |
좀더 자세한건 메모리 다루실때 공부하시겠지만
변수를 선언할때, 관련 부분을 가르키는 포인터를 조정해서
변수가 메모리에 들어갈 공간을 마련해줍니다
그리고 나서 값을 할당해 주는거죠 |
2011/04/17 |
|
| winkivy |
쓰레기값이 들어있거든요 찌꺼기 같은것들.. 그걸 0으로 시켜줘야 깨끗해지니까 그런후에 사용하는거죠. |
2011/04/17 |
|
| odogi91 |
좋은 답변들 감사합니다. ^^ |
2011/04/17 |
|