これは非常に愚かで愚かに聞こえるかもしれません。私はとの違いを理解するのに疲れています
char *token[32];
と
char token[32];
char token [32]は、トークンが32文字を含むことができる文字配列であることを宣言します。
char * token [32]の場合、tokenは32文字のポインターを保持します。これらのポインターは何を指しますか?または、より具体的には、ポインタが指すメモリを割り当てるのはユーザーの責任です。
char *token[32]
トークンを、32文字を含むことができる文字配列へのポインターとして宣言します。
いいえtoken
。32文字のポインタの配列であると宣言しています。つまり、最初のケースでtoken
は32文字を保持し、2番目のケースでは32個のポインターを保持します。
32文字を保持する文字配列へのポインタを宣言する場合は、次のように記述します。
char arr[32];
char (*token)[32] = &arr;
char *token[32];
32文字のポインタの配列です。つまり、アレイは次のように使用できます。
token[0]=p1;
token[1]=p2;
.....
ここで、p1とp2はchar[]
またはchar*
タイプにすることができます。
この投稿は、質問以外の関連事項を理解するのに役立つ場合があります。