- ベストアンサー
配列とポインタの関係
配列とポインタについてです。 char *p_str="HAPPY";と char p_str[10]={'H','A','P','P','Y'}; は同じことでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
C/C++での文字列は、最後に終端をあらわす'\0'が付きます。 なので、メモリ上の配置が同じレイアウトになるのは下記のように書いた場合です。 char p_str[10]={'H','A','P','P','Y','\0'}; しかし、この場合も実際に生成されるコードは違う場合があります。 char *p_str="HAPPY"; この場合の"HAPPY"はリテラル文字列と呼ばれ、処理系によっては書き込みが禁止されたメモリ領域に配置されます。 一方、配列のほうは普通の変数と同じ形式で配置され、書き換えが可能です。
その他の回答 (1)
- okazaki0ko
- ベストアンサー率15% (37/238)
回答No.1
違います。
お礼
ありがとうございます。 リテラル調べてみます。