У меня есть следующая проблема:Char массив против Int массива
int a[2][2]={{1,2},{3,4}};
cout<<a[1]; //the output is 0x29ff18 , which is an address
--------------------------------------------------------------------
char b[][6]={"hello","there","now"};
cout<<b[1]; //the output is there, which is value of b[1]
Я задаюсь вопросом, почему б [1] не даст адрес, как у [1] ...
спасибо!
'a [1]' и 'b [1]' - массивы, а не адресаты. Но это не связано с вашей очевидной проблемой. –
Я не знаю, почему результат будет другим. – jackycflau
Выражение 'b [1]' неявно преобразуется в 'char *', перегрузка потока для символа 'char *' печатает строку, если вы хотите, чтобы адрес необходимо указать: 'std :: cout << static_cast (b [1]);'. Он печатает адрес в случае 'a', потому что нет лучшей перегрузки для' int * '. –
user657267