인프런 커뮤니티 질문&답변

sunnyside0102님의 프로필 이미지
sunnyside0102

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

C++알고리즘 교안

교안 38p char 질문입니다

해결된 질문

작성

·

78

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

38페이지의 "char 을 초기화할 때 주의할 점"에 대해 궁금합니다. 코드에서 char a = '\0' 와 char b = 0 라고 선언한 부분이

if(a==b) cout << 1 ; 에서 1이 출력됩니다.

위 설명에선 char 변수를 초기화할 때 특정값으로 하거나, 널 문자를 사용하는 방법 두가지가 있다고 했는데

b는 숫자 0을 대입한 것인지 아니면 "0"을 대입한 건지 헷갈립니다. 당연히 전자라고 생각했는데 if 문에서 둘이 동일하다고 해서 제가 놓친 부분이 있는지 궁금합니다. 만약 후자라면 숫자 0을 대입하는 방법이 궁금합니다

감사합니다

 

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 sunny님ㅎㅎ

두가지는 다음과 같은 차이가 있습니다만 동일하다고 보시면 됩니다.

  • char a = '\0';: 이 표현에서 '\0'은 널 문자를 나타내는 문자 리터럴입니다. 널 문자란 문자열의 끝을 표시하는 특수한 문자로, ASCII 값이 0인 문자를 말합니다.

  • char b = 0;: 이 표현에서 0은 정수 리터럴입니다. 문자 타입의 변수를 정수 값 0으로 초기화하는 것으로, 결과적으로 널 문자를 나타냅니다.

잠깐 아스키 코드를 볼까요?

image

지금 보시는 것처럼 아스키코드에서 0은 null을 나타내기 때문에 결과적으로 동일한 의미라고 보시면 됩니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


 

sunnyside0102님의 프로필 이미지
sunnyside0102

작성한 질문수

질문하기