ধরুন আমাদের দুটি সংখ্যা a এবং b আছে। আমাদের একটি ফাংশন সংজ্ঞায়িত করতে হবে যা (a + b) এবং (a - b) উভয়ই গণনা করতে পারে। কিন্তু সি-তে একটি ফাংশন ব্যবহার করে, আমরা সর্বাধিক একটি মান ফেরত দিতে পারি। একাধিক আউটপুট খুঁজতে, আমরা পয়েন্টার ব্যবহার করে ফাংশন আর্গুমেন্টে আউটপুট প্যারামিটার ব্যবহার করতে পারি। এখানে এই সমস্যায় আমরা a+b এর সাথে a এবং a-b এর সাথে b আপডেট করব। যখন আমরা ফাংশনটিকে কল করি তখন আমাদের এই দুটি ভেরিয়েবলের ঠিকানা পাস করতে হবে।
সুতরাং, যদি ইনপুট হয় a =5, b =8, তাহলে আউটপুট হবে a + b =13 এবং a - b =-3
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন সংজ্ঞায়িত করুন solve(), এটি a এবং b
এর ঠিকানা গ্রহণ করবে -
temp :=ভেরিয়েবলের মানের সমষ্টি যার ঠিকানা দেওয়া আছে
-
b :=ভেরিয়েবলের মানের পার্থক্য যার ঠিকানা দেওয়া হয়েছে
-
a =temp
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#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