main() { char a[1]; pp(4, a); } pp(x, p) int x; char *p; { char q[1]; printf("%d\n", (unsigned int)p - (unsigned int)q); if(x == 0) return; else { pp(x - 1, p); } }
func(a, b) int *a, b[]; { . . }
main() { int x; abc(x++, x++); } abc(x, y) int x, y; { printf("%d\n", x - y); }
上のプログラムだとコンパイラによってはヲーニングやエラーが出るので、 以下に或る意味同等のプログラムを示す。 こちらで考えてもよい。 以下のプログラムの方が分かりやすいかもしれない。
#include <stdio.h> void abc(x, y) int x, y; { printf("%d\n", x - y); } int inc(x) int *x; { return (*x)++; } int main() { int x; abc(inc(&x), inc(&x)); return 0; }