私はfoo[bar]
が*(foo + bar)
に等しいことを認識していますが、*foo[bar]
と等しく、*argv[2]
にアクセスしていますか?私はこれを理解するのがやや混乱していますが、おそらく*(*(foo) + bar)
のようなものを想定していましたが、確信が持てません。ポインタのポインタの算術演算(* argv [])?
これは簡単な回答であればお詫び申し上げます。
私はfoo[bar]
が*(foo + bar)
に等しいことを認識していますが、*foo[bar]
と等しく、*argv[2]
にアクセスしていますか?私はこれを理解するのがやや混乱していますが、おそらく*(*(foo) + bar)
のようなものを想定していましたが、確信が持てません。ポインタのポインタの算術演算(* argv [])?
これは簡単な回答であればお詫び申し上げます。
それはそれは**(foo + bar)
はなぜあるというのが私の理解です:以下の場合はそう *a[b]
が**(a+b)
*a[b]
は、CおよびC++優先ルールのために*(a[b])
に相当します。
*foo[bar]
**(foo + bar)
ああ!それは理解するのがはるかに簡単です。私はそれが簡単だったことを知っていた、受け入れるために11分待つ必要があります:P – John
に相当します。そして、次は同等すぎている、
foo[bar]
*(foo + bar)
同等であります?
*foo[bar]
はfoo[bar]
が参照解除された後に*されているため、*とfoo[bar]
に分割されます。あなたは既に今すぐ*他を追加し、また**(foo + bar)
*foo[bar]
に簡素化*(*(foo + bar))
を持っているものfoo[bar] == *(foo + bar)
答え
はfoo[bar]
へのポインタ参照です。 char *argv[]
の宣言を仮定
、argv[2]
はあなたに、その文字列の最初の文字を与え、このポインタをchar *
あるargv
アレイの第3の要素を参照し、*argv[2]
逆参照。
あなたは単にそれを試してみることができます。不確かな場合はかっこを使用します。 – codymanix