Почему вызов cout.operator << (const char *) печатает адрес вместо строки символов?

Я изучал класс ostream в C ++. Я застрял на странном выводе cout для строковых и целочисленных типов данных.

При передаче целочисленного значения или значения с плавающей запятой вывод точно соответствует тому, что я передаю. Например, cout.operator<<(10); печатает 10. Но при передаче строки в качестве аргумента она печатает некоторые шестнадцатеричные значения:

#include <iostream>
#include <string>

using namespace std;

int main() {
        const char* str = "aia";
        cout.operator<<(str);
        return 0;
}

Вывод: 0x4007e0.

29
задан Boann 31 July 2019 в 20:40
поделиться