最近思うんだけれど、C言語の文法って 「宣言は置換規則」 っていう発想がところどころみられるよね。 たとえば、古いK&Rの関数定義なら #include <stdio.h> /* funcの定義 */ char func(x,y) int x; double y; { return 'B'; } /* funcの利用 */ main() { int x; /* xはintに置換される */ double y; /* yはdoubleに置換される */ x = 1; y = 2.0; printf("%c", func(x,y)); /* func(x,y)がcharに置換される、と考えることもできる */ } それから、悪名高いポインタと配列の定義。 #include <stdio.h> #include <string.h> int main() { int ary[10]; /* なぜ