Giả sử chúng ta có hai số a và b. Chúng ta sẽ phải xác định một hàm có thể tính (a + b) và (a - b) cả hai. Nhưng sử dụng một hàm trong C, chúng ta có thể trả về nhiều nhất một giá trị. Để tìm nhiều hơn một đầu ra, chúng ta có thể sử dụng các tham số đầu ra thành các đối số của hàm bằng cách sử dụng con trỏ. Ở đây trong bài toán này, chúng ta sẽ cập nhật a với a + b và b với a-b. Khi chúng ta gọi hàm, chúng ta sẽ phải chuyển địa chỉ của hai biến này.
Vì vậy, nếu đầu vào là a =5, b =8, thì đầu ra sẽ là a + b =13 và a - b =-3
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
xác định một hàm giải quyết (), điều này sẽ lấy địa chỉ của a và b
-
temp:=tổng các giá trị của biến có địa chỉ được cung cấp
-
b:=sự khác biệt của các giá trị của biến có địa chỉ được đưa ra
-
a =temp
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#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); }
Đầu vào
a = 5, b = 8
Đầu ra
a + b = 13 and a - b = -3