20.09.19 19:40 작성
·
219
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