Zugriff auf das 2D-Array (Ganzzahl- und Zeichenarray)
Nov 01 2020
Bitte beachten Sie den folgenden Code:
char arr[3][10]={"white","red","blue"};
cout<<arr[2]; //output 1
int brr[3][3]={1,2,3,4,5,6,7,8,9};
cout<<brr[2]; //output 2
cout<<*brr[2];
Ausgabe 1: Weiß, bei Dereferenzierung wird w als Ausgabe ausgegeben
Ausgabe 2: hexadezimale Adresse (0x28 .....)
Ausgabe 3: Letzte Zeile erstes Element 7
Ich bin verwirrt, warum es Unterschiede in der Ausgabe von Ganzzahlen und Zeichen gibt.
Antworten
2 TedLyngmo Nov 01 2020 at 07:22
Wenn Sie einen Zeiger angeben, verwendet dieser die std::ostream& operator<<( const void* value );Überladung und gibt die Adresse aus, auf die er zeigt value.
Der Unterschied besteht darin, dass dies std::ostream& operator<<(std::ostream& os, const char* s)ein Sonderfall ist und sdas chars dereferenziert und ausgegeben wird, bis a \0angetroffen wird. Solange keine gefunden \0wird, tritt sie svor.