[2077] 【C言語ポインタ完全制覇】3-1-2 Cの宣言を解読する
投稿者:knwifuru
2017/12/21 10:26:47
バカな質問ばかりして恐縮です。
第1版のp144に『②識別子に近い方から、優先順位に従って派生型(ポインタ、配列、関数)を解釈する。』とあります。
これでいくと、Table 3-1の3番目、
int hoge[10][3];
は、
「識別子"hoge"に一番近いのは、配列[10]。その次が配列[3]。最後に、int」
なので、
「要素数10個の配列が、3つ並んで(また配列を作って)いる。(基本型はint)」
となると思えるのですが、“日本語的表現”では
hoge は、intの配列(要素数3) の配列(要素数10)
と、「要素数3の配列が10個並んでいる」という意味とされています。(Fig. 3-15でも同様)
結局、Cの宣言は、日本語的に考えるとダメで(識別子から遠い側の配列宣言[3]を先に解釈しないと正しくない)、英語で表現して考えないとダメだ、ということなんでしょうかね…
(質問というか、ぼやき?)
"'hoge' is an array (with 10 elements) of an array (with 3 elements) of int."
# あ、本の中の英語の文章ですが、可算名詞に冠詞が抜けているものが少なからずありました…