Когда b
передается оператору cout
<<
, он превращается в указатель; следовательно, что касается функции печати, распечатка b
такая же, как распечатка &b[0]
.
Следовательно, cout << b;
печатает адрес первого указателя в массиве b[3]
. (Обратите внимание, что адрес указателя не совпадает с адресом, на который указывает указатель! Это может быть источником путаницы - просто имейте в виду, что переменная-указатель является переменной ну, и, как и любая другая переменная, она имеет свое уникальное местоположение в памяти, которое отличается от места, на которое она указывает)