何かが宣言されている場合char
、それは (通常) 8 ビットの文字値であることを意味します。
何かが宣言されている場合、それはchar*
へのポインタであることを意味しますchar
。
何かが宣言されている場合、それはchar**
へのポインターへのポインターであることを意味しますchar
。
演算子を式のポインターに適用する*
と、「逆参照」になり、ポインターが指す値が返されます。*
おそらく複数回適用する場合、適用先はポインターへのポインターです。
上記の場合、char **argv
はargv
パラメーターの宣言であり、 へのポインターへのポインターとして定義されますchar
。
理解すべき重要なことが他に 2 つあります。まず、ポインタは、単一の値ではなく、配列sometype*
へのポインタである場合もあれば、そうでない場合もあります。(ポインタがどのように設定されたかを調べる以外に、これが事実かどうかを知る方法はありません。)sometype
sometype
第 2 に、値の配列はchar
C で「文字列」を表現する通常の方法であるため、char*
多くの場合、文字列をアドレス指定します。
帰納法により、文字列へのポインターの配列へのポインターでchar**
ある可能性があります。