0

char * p =「ようこそ」と書くと。p のアドレスが表示されます。しかし、文字列のアドレスは何ですか?つまり、Welcome が格納されたアドレスは?

もう一度書くと char *s = "Welcome". p と s は同じアドレスを指しますか?

4

3 に答える 3

2

デバッガーで を調べるpと、文字列のアドレスが表示されます。

&p自身のアドレスですp

いいえ、同じアドレスを指しているpとは限りませんが、可能性はあります。s

于 2012-09-14T11:55:15.037 に答える
0

「ようこそ」は文字列定数であり、メモリの読み取り専用データセクションに格納されますが、この文字列リテラルを指すポインタ p がスタックに作成されます

于 2012-09-14T11:55:58.687 に答える
0

文字列定数 "Welcome" は、多くの場合、メモリの "read-only-data" セクションに配置されます。ここに良い説明があります:文字列リテラルはどこに行くのかとデータセグメント

文字列定数「Welcome」のアドレスを見つけることができます

 printf("%p",p);

もう一度書くと char *s = "Welcome". p と s は同じアドレスを指しますか?

同じ文字列定数が同じアドレスに置かれているかもしれませんし、そうでないかもしれません。

于 2012-09-15T04:46:53.890 に答える