しばらくの間、私を悩ませていたものがあります。それに対する答えが必要です。
char *p = "hello world";
p="wazzup";
p="Hey";
ここで、文字列を指すポインターを宣言します (つまり、ポインターを使用して文字列を作成しました)。
char配列文字列を使用した場合、通常は得られない奇妙な結果が得られました
cout <<p<< endl; //"Hey" Gets printer
cout <<p+8<< endl; // I kept adding numbers till "wazzup" got printed
cout <<p+29<< endl; // No matter how much I increment, I cant print "Hello World"
だから私の質問は:
char ポインターが指している値を変更すると。しますか
char 配列の場合と同様に、元のデータを上書きします。
または、メモリ内の直前に新しい文字列を作成し、それを指します。
または、古い文字列の先頭に新しい文字列を追加しますか(nullを含む);
それとも、メモリ内の新しい場所に新しい文字列を作成し、たまたま「wazzup」を印刷できましたか