Возможно глупый вопрос. Когда я cout
указал указатель на массив символов, я думал, что он напечатает адрес; вместо этого он разыменовывает адрес и печатает фактические значения до нуля.
В отличие от массива int, где он делает то, что я ожидаю. Он печатает адрес первого элемента.
Почему элемент char разыменовывается при печати указателя.
char* as = new char[100];
as[0] = 'a';
as[1] = 'b';
as[2] = NULL;
cout << as << endl;
int* s = new int[100];
s[0] = 2;
cout << s << endl;
Спрашиваю об этом, потому что, когда я пытаюсь получить адрес первого элемента char a[0] = 'a';
. Я должен хранить его в указателе на указатель. Что мне кажется странным, но это не главное.
char ** d = &as;
cout << d << "this is d" << endl;
cout << d
печатает строку ... и мне было интересно, как это происходит. - person Barry   schedule 08.04.2015