性格悪い人が優勝

str[i] と*(str + i) および &str[i] と str + iと&*(str + i) は同じですか?
仮にiを+1していくとして、
iが+1されるとstr[i]のポインタのアドレス自体ではなく、
アドレスに入っているメモリの値が+1され、
iが+1されるとつぎのアドレスに移行すると聞いたのですが、それは上の5つのうちどれですか?
また、が+1されるとstr[i]のポインタのアドレス自体ではなく、
アドレスに入っているメモリの値が+1され、のは5つのうちどれですか?

質問者からの補足コメント

  • str[i]はiが+1(4バイト)されるとstr[]がポインタのアドレス自体が上がり、次のアドレスに進む。

    *(str + i)はiが+1されるとstrのアドレスが+1
    上がり次のアドレスに進む

    &str[i]は&がついているから上と同じ

    str + iはが+1されたらstr自体がアドレス表すのでアドレス自体が次のアドレスに進む。

    &*(str + i) は左辺部の&より他と同じということでしょうか?
    すなわちstr[i] と*(str + i) および &str[i] と str + iと&*(str + i) は同じですか?

    逆にstr[i]のアドレスを固定するには、どう書けばよいのですか?

      補足日時:2021/02/15 15:46

A 回答 (1件)

>str[i] と*(str + i)


同じ。
>&str[i] と str + iと&*(str + i)
同じ。

>str[]がポインタのアドレス自体が上がり、次のアドレスに進む。
間違い。strは配列名ですので変化しません。

>*(str + i)はiが+1されるとstrのアドレスが+1上がり次のアドレスに進む
間違い。strは変化しません。

いったん勉強やめて、リフレッシュしたほうが良いと思います。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!