สมมติว่าเรามีตัวเลขสองตัว a และ b เราจะต้องกำหนดฟังก์ชันที่สามารถคำนวณ (a + b) และ (a - b) ทั้งสองอย่าง แต่เมื่อใช้ฟังก์ชันในภาษา C เราสามารถคืนค่าได้ไม่เกินหนึ่งค่า ในการค้นหามากกว่าหนึ่งเอาต์พุต เราสามารถใช้พารามิเตอร์เอาต์พุตในอาร์กิวเมนต์ของฟังก์ชันโดยใช้พอยน์เตอร์ ในปัญหานี้เราจะอัปเดต a ด้วย a+b และ b ด้วย a-b เมื่อเราเรียกใช้ฟังก์ชัน เราจะต้องส่งที่อยู่ของตัวแปรสองตัวนี้
ดังนั้น หากอินพุตเป็น a =5, b =8 ผลลัพธ์จะเป็น a + b =13 และ a - b =-3
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
กำหนดฟังก์ชั่น Solve() ซึ่งจะใช้ที่อยู่ของ a และ b
-
temp :=ผลรวมของค่าของตัวแปรที่กำหนดให้ address
-
b :=ความแตกต่างของค่าของตัวแปรที่ระบุที่อยู่
-
a =อุณหภูมิ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <stdio.h> int solve(int *a, int *b){ int temp = *a + *b; *b = *a - *b; *a = temp; } int main(){ int a = 5, b = 8; solve(&a, &b); printf("a + b = %d and a - b = %d", a, b); }
อินพุต
a = 5, b = 8
ผลลัพธ์
a + b = 13 and a - b = -3