次のプログラムでは、格納された文字列はcin
を使用して変更され、アドレスが変更されます。 stringの最初の要素のアドレスは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
連続していない。配列に格納されている文字列が変化しています。これは、そのアドレスについては何も伴わない。 –
あなたは本当に[C++の良い本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?lq=1)を読むべきです。 –