- ベストアンサー
文字列リテラルの途中の文字を指すポインタについて
文字列リテラルの途中の文字を指すポインタについて 下記のプログラムで途中の文字を指すポインタは、&s1[7]で 書かれていますが, s1+7と書けないでしょうか、問題点を教えてください。; int main(void) { char *s1 = "Bohyo takahoshi"; char *s2 = &s1[7]; printf("フルネームは%sです\n",s1); printf(フアミリールームは%sです\n",s2);
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> &s1[7]は、どのように解釈すればよいのでしょうか s1[7] :「s1の7番目の文字」だから &s1[7] : 「s1の7番目の文字」のアドレス # (&s1)[7] ではなく &(s1[7]) と解釈されます。
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.1
>s1+7と書けないでしょうか そのように思われたら、まずは自分でテストプログラムを書いてみる、 という考えを持たれたらどうでしょうか。
質問者
お礼
回答ありがとうこざいます。テストプログラムを書いて実行しましたが 問題なく表示されました、s1は、先頭のポインタなので、+7の後のポインタを 指すポインタと思います。 &s1[7]は、どのように解釈すればよいのでしょうか
お礼
回答ありがとうございます。文字列の7番目の文字は、s1[7]で表示する ことがわかりました。