пример кода:
char *array = "привет";
cout << array;
Почему выводится все слово, а не первая буква?
Непонятно, почему вы ожидали получить один символ.
Ведь если бы указатель был не на char, а, скажем, на int, то вы получили бы не этот int, а численное значение самого указателя (в шестнадцатеричном виде):
int array[] = {1,2,3};
int *ptr = &array[0];
std::cout << ptr << '\n'; // `0x7ffdc12431dc`, а не `1`
(Вроде бы в стандарте не написано, как точно должны выводиться указатели, но на всех компиляторах, которые я видел, они выводятся как шестнадцатеричные числа.)
Для cout указатели на char - это особый случай. cout считает их указателями на начало строк, и выводит как строки.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей