无论我阅读多少主题,我都无法理解评估策略。你能举个例子给我解释一下这三个评估顺序吗?我在下面写一个代码。您能否使用下面的代码解释按需求调用(惰性评估)、按名称调用(正常顺序评估)、按引用调用。你也可以用你的例子来解释它们。我只想理解他们,但我就是无法理解。
int a[4] = {10,20,30,40};
int i = 0;
int *p;
void test(int x, int y, int z)
{
p = (int *)malloc(sizeof(int));
*p=x;
x++; y++; z++;
p = &z;
printf("%d %d %d\n",x,y,z);
x++; y++; z++;
p = &z;
printf("%d %d %d\n",x,y,z);
}
main()
{
test(i,a[0],a[i]);
printf("%d %d %d %d %d\n", a[0],a[1],a[2],a[3],*p);
}
提前致谢。
}