쾌락없는 책임 (공부)/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 이 나올때까지 계속 찍게 되는 것이다. (뒤에는 뭐가 있는지 알 수 없어 아무 문자열이 나오게 된다).

반응형