0
int main(){
char a[] = "Ab";
char *ptr = a;
//ptr = a;
cout << &a << a[0] << endl;
cout << ptr << endl;
char c= 'C';
char *pC = &c;
cout << &c << " :: " << pC << endl;
cout << pC << endl;
}
Выход: 0x7fffcb399550A Ab Cab :: Cab Cabпечати адрес указателя полукокса
Невозможно понять последние два выхода.
Спасибо за ответ, но у меня снова возникновение путаницы. Это же поведение не применяется к char a [] = "ab". Когда мы пытаемся напечатать & a, оператор должен взять тип операнда как char *, тогда он также должен напечатать строку «ab», а не адрес. Зачем & print напечатать адрес начала строки, а в случае char c = 'C', & c напечатать символ 'C'? – user3248678
@ user3248678 '& a' не имеет типа' char * ', потому что' a' не имеет типа 'char'. –