• ベストアンサー

文字列リテラルの途中の文字を指すポインタについて

文字列リテラルの途中の文字を指すポインタについて 下記のプログラムで途中の文字を指すポインタは、&s1[7]で 書かれていますが, s1+7と書けないでしょうか、問題点を教えてください。; int main(void) { char *s1 = "Bohyo takahoshi"; char *s2 = &s1[7]; printf("フルネームは%sです\n",s1); printf(フアミリールームは%sです\n",s2);

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> &s1[7]は、どのように解釈すればよいのでしょうか s1[7] :「s1の7番目の文字」だから &s1[7] : 「s1の7番目の文字」のアドレス # (&s1)[7] ではなく &(s1[7]) と解釈されます。

dreamsturb
質問者

お礼

回答ありがとうございます。文字列の7番目の文字は、s1[7]で表示する ことがわかりました。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>s1+7と書けないでしょうか そのように思われたら、まずは自分でテストプログラムを書いてみる、 という考えを持たれたらどうでしょうか。

dreamsturb
質問者

お礼

回答ありがとうこざいます。テストプログラムを書いて実行しましたが 問題なく表示されました、s1は、先頭のポインタなので、+7の後のポインタを 指すポインタと思います。 &s1[7]は、どのように解釈すればよいのでしょうか

関連するQ&A

専門家に質問してみよう