Ich benutze C++, um zu verstehen, wie genau Zeiger funktionieren. Ich habe dieses Stück Code mit Arrays, die ich nur verwenden, um zu verstehen, wie das Äquivalent mit Zeigern funktioniert.Warum druckt Char-Char-Arrays anders als andere Arrays?
int main() {
int arr[10] = {1,2,3};
char arr2[10] = {'c','i','a','o','\0'};
cout << arr << endl;
cout << arr2 << endl;
}
Jedoch, wenn ich dies auszuführen, gibt arr
die Adresse des ersten Elements des Arrays von ints (wie erwartet), aber arr2
nicht ausgibt, die Adresse des ersten Elements der Reihe von Zeichen; es druckt tatsächlich "ciao".
Was fehlt mir oder dass ich noch nichts davon gelernt habe?
Nach [dieser] (http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/) ist es nur für void * überladen. Bedeutet das, dass er feststellen kann, ob der Zeiger auf Zeichen zeigt, und wenn ja, ob er nach dem Terminalzeichen sucht und die Zeichenkette ausgibt? (noch ein wenig ratlos) – rmp251
@ rmp251: Verpasst [diese] (http://www.cplusplus.com/reference/ostream/ostream/operator-free/)? –