문자 배열을 전역으로 선언하면 자동 초기화되는 이유???
겨루
문자 배열을 전역으로 선언하면 자동 초기화되는 이유???
문자 배열을 전역으로 선언하면 자동 초기화 되고, 지역으로 선언하면 초기화 되지 않고 쓰레기 값을 갖는 이유는 무엇인가요???질문 내용 :
#includestdio.h
char a[8];
int main(void)
{
char b[8];
printf(%s\n,a);
printf(%s\n,b);
return 0;
}
이 코드를 실행하시면, 배열a는 출력되지 않고(모두 null값으로 자동 초기화 되어 있고..), 배열 b는 쓰레기 값이 출력되는데요.. 차이는 전역으로 선언했느냐 지역으로 선언했느냐 차이밖에 없는데 왜 초기화가 되고 안되고 그런건지요???
-
마음
; 네.. 근데 변수뿐 아니라 배열도 마찬가지였군요..
-
빵야
초기화되지 않은 전역변수와 정적변수는 start up code에 의해서 0으로 초기화됩니다.
-
해가빛
오호;
-
아리
아 전역변수와 정적변수는 초기화하지 않아도 0으로 초기화되고, 자동(auto클래스)변수는 초기화되지 않고 그런거군요.. 그러고보니 책에서 그런 부분을 읽은 기억이 나네요.. 답변 감사드립니다^^
-
소유
이유는 없습니다. 그렇게 만들어졌어요.
사실 컴파일러는 시키지 않은 일을 스스로 알아서 하는 경우가 드뭅니다.
전역변수나 정적(외부,내부)변수는 초기화하지 않으면 0 으로 초기화되는데,
애써 초기화했다라기 보다는 이들 변수는 프로그램 파일 내에 포함되기 때문에
어떤 다른 값을 일부러 정해서 넣는다는 것이 더 우숩죠.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |