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

배규혁님의 프로필 이미지
배규혁

작성한 질문수

홍정모의 따라하며 배우는 C++

6.6 C언어 스타일의 배열 문자열

[02:59] 질문 있습니다.

작성

·

222

0

교수님께서 문자열 "string"으로 sizeof를 하셔서 7의 값이 나왔는데

그 전에 "string\0"을 했을 때는 sizeof(myString) / sizeof(myString[0])의 값이 8로 나옵니다...

"string\0"으로 값을 입력하면 sizeof는 \0를 같이 포함시키고 "string"으로 하면 포함을 시키지 않는건가요...?

null character가 적용되는 기준이 궁금합니다..!

그리고 int array와 char array를 출력할 때 그냥 cout << () << endl; 을 써서 출력하면 int array는 주소를 출력하고 char array는 입력한 배열을 출력하는 지 궁금합니다.

감사합니다.

답변 3

0

\0 같은 경우에는 문자로 취급합니다. \n 과 같이 말이죠. s가 문자인 것처럼 \0도 문자로 받게 됩니다. 규혁님께서 "string\0"을 sizeof를 사용하여 출력하면 당연히 8이 나올 수 밖에 없습니다. 이를 for문을 이용하여 출력하면 

s t r i n g \0 \0 로 출력되기 때문이죠. 반대로 "string"를 입력했을 때 출력하시게 되면 s t r i n g \0 만 출력하게 됩니다. 강의에 나왔던대로 따옴표 문자열의 끝에는 무조건 \0인 null값이 들어가게 되므로 "string\0"을 입력하시면 반드시 뒤에 \0을 붙인 체로 나올 수 밖에 없습니다. 따라서 사이즈의 총 크기는 8이 나올 수 밖에 없는 것이죠.

0

저는 영상대로 7나와요!

0

안녕하세요?
첫번째 질문은 string이 6글자 같은데... 다시 한 번 확인해보셨으면 좋겠네요.
두번째는 질문은 저는 한 번 시도해보셨으면 좋겠습니다. 이 방향이 좀 더 좋을 것 같네요.

배규혁님의 프로필 이미지
배규혁

작성한 질문수

질문하기