0
無論我讀了多少主題,我都無法理解評估策略。你能用一個例子向我解釋三個評估命令嗎?我正在寫下面的代碼。你能否按需要解釋呼叫(懶惰評估),按名稱呼叫(正常的訂單評估),使用下面的代碼通過參考呼叫。你也可以用你的例子來解釋它們。我只想要了解他們,但我無法理解。Dummies評估訂單
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);
}
在此先感謝。
}
我認爲這些概念在C語言中沒有力量,評估總是「正常」的,評估順序問題只出現在帶有副作用的語句中。我看到的最接近的是按值或通過引用/指針調用函數的區別。 ...另一方面,如果你想要的只是你的代碼的每一行的詳細解釋,我可以做。 – Medinoc