В следующей программе сохраненная строка изменяется с использованием cin
, изменяя таким образом адрес. Адрес первого элемента строки представлен s
. Адрес первого элемента - это сама строка. Таким образом, он был изменен при вводе новой строки. Когда я пытаюсь вывести &s[0]
в cout
, он дает целую строку.Как вы можете получить постоянный указатель на первый символ в массиве символов?
#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
}
И какой адрес меняется точно? – DeiDei
Non sequitur. Строка, хранящаяся в массиве, изменяется. Это не связано с его адресом. –
Вы действительно должны прочитать [хорошую книгу на C++] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?lq=1). –