07/12/15 16:43:52
>>627
関数の引数は常にポインタしかとらない。
字面上配列の形をしていても、そいつはポインタだ。
だから、
void foo(char *pa[]);
void bar(char **pp);
char aa[10][10];
という関数と配列の配列があったとして、以下の呼び出し
foo(aa);
bar(aa);
のどちらも違法(コンパイラが怒る)だ。
これが「配列の配列は、ポインターへのポインターへ成り下がることはない」の意味だ。
ちなみにmainに渡されるargvはポインタの配列であり、これはポインタのポインタで受けられる。