Im folgenden Programm wird die gespeicherte Zeichenfolge mit cin
geändert, wodurch die Adresse geändert wird. Die Adresse des ersten Elements von string wird durch s
dargestellt. Die Adresse des ersten Elements ist die Zeichenfolge selbst. Somit wurde es geändert, wenn ein neuer String eingegeben wird. Wenn ich versuche, &s[0]
zu cout
auszugeben, gibt es die ganze Schnur.Wie können Sie einen konstanten Zeiger auf das erste Zeichen in einem Zeichenarray erhalten?
#include<iostream>
using namespace std;
int main() {
char s[6];
cin >> s; // say abcde
cout << s ;
cout << &s[0] ; // gives abcde
cin >> s; // say stack
cout << s;
cout << &s[0] ; gives stack
}
Und welche Adresse ändert sich genau? – DeiDei
Nicht sequitur. Die im Array gespeicherte Zeichenfolge ändert sich. Dies hat nichts mit seiner Adresse zu tun. –
Sie sollten wirklich [ein gutes Buch über C++] lesen (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?lq=1). –