บทนำ
เราส่งอาร์กิวเมนต์ต่างๆ เข้าไปในฟังก์ชัน คำถามคือลำดับการประเมินค่าพารามิเตอร์เป็นอย่างไร คือจากซ้ายไปขวา หรือขวาไปซ้าย?
เพื่อตรวจสอบลำดับ เราใช้โปรแกรมง่ายๆ ที่ส่งพารามิเตอร์บางอย่าง จากผลลัพธ์เราจะรู้ว่ามันถูกประเมินอย่างไร
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
void test_function(int x, int y, int z) {
cout << "The value of x: " << x << endl;
cout << "The value of y: " << y << endl;
cout << "The value of z: " << z << endl;
}
int main() {
int a = 10;
test_function(a++, a++, a++);
return 0;
}
ผลลัพธ์
The value of x: 12 The value of y: 11 The value of z: 10
จากผลลัพธ์นี้ เข้าใจลำดับได้ง่ายๆ ตัวแรกที่ถูกนำคือ z จึงมีค่า 10 ต่อมาคือ y ค่า 11 และสุดท้ายคือ x ค่า 12