সি প্রোগ্রামিং এ ফাংশনের মধ্য দিয়ে array অতিক্রম করানো
সি প্রোগ্রামিং এ array এর একটি এলিমেন্টকে অথবা সম্পূর্ণ array কে ফাংশনের মধ্যে দিয়ে অতিক্রম করানো যায়।
one-dimensional এবং multi-dimensional উভয় array এর জন্য এই কাজটি করা যায়।
One-dimensional Array কে ফাংশনের মধ্য দিয়ে অতিক্রম করানো
ফাংশনের মধ্য দিয়ে ভ্যারিয়েবলকে যে পদ্ধিতিতে অতিক্রম(pass) করানো হয়, একই পদ্ধতিতে array এর একটি একক এলিমেন্টকেও অতিক্রম করানো যায়।
ফাংশনের মধ্য দিয়েে array এর একটি একক এলিমেন্টকে অতিক্রম করানোর জন্য প্রোগ্রাম
#include <stdio.h>
void display(int age)
{
printf("%d", age);
}
int main()
{
int ageArray[] = { 2, 3, 4 };
display(ageArray[1]);
// array এলিমেন্ট ageArray[1] কে শুধুমাত্র ফাংশনের অতিক্রম করানো হয়েছে।
return 0;
}
আউটপুট
3
একটি সম্পূর্ণ one-dimensional array কে ফাংশনের মধ্য দিয়ে অতিক্রম করানো
ফাংশনের মধ্য দিয়ে array-কে আর্গুমেন্ট(argument) হিসাবে অতিক্রম করানো হলে শুধুমাত্র array এর নাম অতিক্রম হয়। অর্থাৎ মেমোরি এরিয়ার একেবারে শুরু থেকে আর্গুমেন্ট হিসাবে অতিক্রম করে।
ব্যক্তির বয়স সম্বলিত array কে ফাংশনের মধ্য দিয়ে অতিক্রম করানোর জন্য সি প্রোগ্রাম। এই ফাংশনের মাধ্যমে ব্যক্তির গড় বয়স নির্ণয় করে main ফাংশনের মাধ্যমে ডিসপ্লে(display) করানো হয়।
#include <stdio.h>
float average(float age[]);
int main()
{
float avg, age[] = { 23.4, 55, 22.6, 3, 40.5, 18 };
avg = average(age); /* শুধুমাত্র array এর নামকে আর্গুমেন্ট হিসাবে অতিক্রম করানো হয়। */
printf("Average age=%.2f", avg);
return 0;
}
float average(float age[])
{
int i;
float avg, sum = 0.0;
for (i = 0; i < 6; ++i) {
sum += age[i];
}
avg = (sum / 6);
return avg;
}
আউটপুট
Average age=27.08
multi-dimensional array কে ফাংশনের মধ্য দিয়ে অতিক্রম করানো
tow-dimensional array কে আর্গুমেন্ট হিসাবে ফাংশনের মধ্য দিয়ে অতিক্রম(passed) করানোর সময় one-dimensional array এর মতই সংরক্ষিত মেমোরি এরিয়ার একেবারে শুরু থেকে অতিক্রম করে।
উদাহরণঃ two-dimensional array কে ফাংশনের মধ্য দিয়ে অতিক্রম করানো
#include <stdio.h>
void displayNumbers(int num[2][2]);
int main()
{
int num[2][2], i, j;
printf("Enter 4 numbers:\n");
for (i = 0; i < 2; ++i)
for (j = 0; j < 2; ++j)
scanf("%d", &num[i][j]);
// multi-dimensional array কে displayNumbers ফাংশনের মধ্য দিয়ে অতিক্রম করানো
displayNumbers(num);
return 0;
}
void displayNumbers(int num[2][2])
{
// উপরের লাইন ছাড়া void displayNumbers(int num[][2])-ও বৈধ।
int i, j;
printf("Displaying:\n");
for (i = 0; i < 2; ++i)
for (j = 0; j < 2; ++j)
printf("%d\n", num[i][j]);
}
আউটপুট
Enter 4 numbers: 2 3 4 5 Displaying: 2 3 4 5