C中功能参数的评估顺序是什么?
我们将不同的参数传递给某些函数。现在我们可能会想到一个问题,那就是函数参数的评估顺序。是从左到右还是从右到左?
为了检查评估顺序,我们将使用一个简单的程序。这里传递了一些参数。从输出中,我们可以找到它们的评估方式。
范例程式码
#include<stdio.h> void test_function(int x, int y, int z) { printf("The value of x: %d\n", x); printf("The value of y: %d\n", y); printf("The value of z: %d\n", z); } main() { int a = 10; test_function(a++, a++, a++); }
输出结果
The value of x: 12 The value of y: 11 The value of z: 10
从此输出中,我们可以轻松了解评估顺序。首先取z,因此保持为10,然后取y,因此取11,最后取x。因此该值为12。