C스타일 배열 초기화 안하고 선언만했을때 ex) int a[10];왜 전역에서만 0으로 초기화됨?? 지역에선 초기화가 안되더라. 무슨 이유가 있음???이거 컴파일러별로 다른가?? 내가쓴건 gcc임
의도된 기능임 언어 명세에 전역 변수를 초기화한다고 써있음
아 배열뿐만아니라 변수도 초기화되는구나. 전역변수를 키워드로 찾아보니 이유가 많이 나온다. 고마워
원래 전역은 0 지역은 쓰레기값
깊게 설명하려면 복잡한데 단순히 말하면 전역변수 초기화는 지역변수 초기화보다 훨씬 저렴함 지역변수는 같은 메모리 공간을 여러 변수가 쓸 수 있는데 전역변수는 그냥 제로필된 페이지에다가 위치시키기만 하면 되니까
오
내가 이해한게 맞으면 자바도 비슷함