쾌락없는 책임 (공부)/C++ 짜잘이
cout 과 문자열 포인터
허스크
2021. 12. 27. 13:38
반응형
int int_arr[5] = {1, 2, 3, 4, 5};
char char_arr[] = "Hello, World!";
const char *name = "Husk Husk";
cout << int_arr << endl; // 주소값
cout << char_arr << endl; // Hello, World!
cout << name << endl; // Husk Husk
위 코드를 실행해보면 배열 시작 주소값이 나오는 int와는 다르게 문자들은 문자열이 나오게 된다. 이는 cout 에서 문자의 포인터가 들어오면 이를 문자열로 생각을 해서 cout이 계속 읽어주는 것이다.
char c = 'Q';
cout << &c << endl;
이러면 Q뒤에 이상한 문자들이 나오게 되는데 이는 cout 에서 문자열로 인식을 하고 계속 읽다가 \0 이 나올때까지 계속 찍게 되는 것이다. (뒤에는 뭐가 있는지 알 수 없어 아무 문자열이 나오게 된다).
반응형