• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

default value of an uninitialized boolean

21.01.22 11:30 작성 조회수 342

0

7:00

초기화 시키지 않은 isPrime 의 디폴트 값은 참인가요? 거짓인가요? 정해지지 않은건가요? 

검색을 해봤더니, 참이라는 곳도 있고 거짓이라는 곳도 있는데, 제가 실행했을 때는 초기화하지 않았다고 에러가 나서 헷갈려서 여쭤봅니다.

감사합니다!

답변 2

·

답변을 작성해보세요.

1

It depends on how you create it. 

https://stackoverflow.com/questions/3845353/what-will-be-the-default-value-of-an-uninitialized-boolean-value-in-c/3845383

1

안소님의 프로필

안소

2021.01.22

안녕하세요.

bool이든 int이든 디폴트 값 자체가 있진 않습니다. 디폴트 값이 있다는 얘기는 초기화 하지 않아도 자동으로 초기화를 해주어 1 혹은 0 같은 디폴트 값을 해당 변수 메모리 안에 넣어준다는건데 그런 행위를 해주진 않습니다.

초기화 하지 않은 b 의 주소를 통해 b 의 메모리를 들여다보겠습니다.

초기화 되지 않아 쓰레기값만 들어있는 것을 볼 수 있습니다. (cc 는 쓰레기값을 의미합니다.) 즉, 아무 값도 들어 있지 않다는 의미입니다. 디폴트로 넣어주는 값도 없다는 의미이구요. 그래서 초기화 되지 않은 변수를 사용하면 에러가 발생하는 것입니다.

이렇게 true 로 초기화 해준다면

정상적으로 1 이 들어가 있는 것을 확인할 수 있습니다.