สมมติว่ามีตัวเลข a และ b ต้องสร้างฟังก์ชันคำนวณ (a+b) และ (a-b) พร้อมกัน แต่ฟังก์ชันคืนค่าได้แค่ค่าเดียว จึงใช้ output parameters ด้วย pointer เรียกฟังก์ชันส่ง address ของตัวแปร อัปเดต a = a+b, b = a-b
เช่น a = 15, b = 18 ผลลัพธ์: a + b = 33 and a - b = -3
ขั้นตอนการแก้ปัญหา
- ฟังก์ชัน solve(int *a, int *b):
- temp = *a + *b
- *b = *a - *b
- *a = temp
- ใน main เรียก solve(&a, &b)
ตัวอย่างโค้ด
#include <iostream> using namespace std; int solve(int *a, int *b){ int temp = *a + *b; *b = *a - *b; *a = temp; } int main(){ int a = 15, b = 18; solve(&a, &b); cout << "a + b = " << a << " and a - b = " << b; }
อินพุต
15, 18
เอาต์พุต
a + b = 33 and a - b = -3