ارسال آرایه به تابع در برنامه نویسی C++ (به زبان کاملا ساده)
در این آموزش خواهید آموخت که آرایه های یک بعدی و چند بعدی را به یک تابع در C++ ارسال کنید.
آرایه ها را می توان به عنوان آرگومان به تابع فرستاد. برای مثال ارسال آرایه یک بعدی به تابع را در نظر بگیرید:
مثال ۱ : ارسال آرایه یک بعدی به تابع
برنامه زیر نمرات ۵ دانش آموز را با استفاده از تابع نمایش می دهد.
- #include <iostream>
- using namespace std;
- void display(int marks[5]);
- int main()
- {
- int marks[5] = {88, 76, 90, 61, 69};
- display(marks);
- return 0;
- }
- void display(int m[5])
- {
- cout << “Displaying marks: “<< endl;
- for (int i = 0; i < 5; ++i)
- {
- cout << “Student “<< i + 1 <<“: “<< m[i] << endl;
- }
- }
خروجی
Displaying marks:
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69
برای ارسال آرایه به تابع تنها نام آن استفاده می شود.
display(marks);
همچنین تفاوت را در هنگام ارسال آرایه به عنوان آرگومان به جای متغیر متوجه می شوید.
void display(int m[5]);
آرگومان marks در کد بالا نشان دهنده آدرس حافظه عنصر اول آرایه [۵]mark است.
و آرگومان عادی [۵]int m در تعریف تابع به int * m تبدیل می شود. این اشاره گر به همان آدرس اشاره شده توسط آرایه marks اشاره دارد.
اگرچه در تابع آرایه با نام [۵]m تعریف شده اما آرایه marks هنگام ارسال به جای آن می نشیند و تغییرات روی آن اعمال می شود.
C++ برای انتقال یک آرایه به تابع از این شیوه برای صرفه جویی در حافظه و زمان پردازش استفاده می کند.
انتقال آرایه چند بعدی به یک تابع
آرایه چند بعدی می تواند مشابه بالا به صورت آرایه یک بعدی به تابع ارسال شود. مثال زیر را در نظر بگیرید که می خواهیم آرایه دو بعدی را به یک تابع ارسال کنیم:
مثال ۲: انتقال آرایه چند بعدی به یک تابع
برنامه زیر عناصر یک آرایه دو بعدی را با استفاده از تابع نمایش می دهد.
- #include <iostream>
- using namespace std;
- void display(int n[3][2]);
- int main()
- {
- int num[3][2] = {
- {۳, ۴},
- {۹, ۵},
- {۷, ۱}
- };
- display(num);
- return 0;
- }
- void display(int n[3][2])
- {
- cout << “Displaying Values: ” << endl;
- for(int i = 0; i < 3; ++i)
- {
- for(int j = 0; j < 2; ++j)
- {
- cout << n[i][j] << ” “;
- }
- }
- }
خروجی
Displaying Values:
۳ ۴ ۹ ۵ ۷ ۱
در برنامه بالا، آرایه چند بعدی num به تابع ()display ارسال می شود.
در تابع ()display ، آرایه
num(n)
با استفاده از حلقه ی تو در تو نمایش داده می شود.
این برنامه از ۲ حلقه for برای نمایش عناصر آرایه ۲ بعدی استفاده می کند. اگر یک آرایه ۳ بعدی داشتیم، از ۳ حلقه for استفاده می کردیم.
در نهایت، تمام عناصر روی صفحه نمایش چاپ می شوند.
نکته: آرایه چند بعدی با ابعاد بیش از ۲ مانند آرایه دو بعدی، به تابع ارسال می شوند.
سلام
پاسخاگر تعداد اعضای لیست رو ندونیم و ما بخوایم در اون تابع مقادیری رو در آرایه ذخیره کنیم چطور میشه؟
مثلاً:
تابعی که درش n رو بگیره و به تعداد n، در یک آرایه n رو ذخیره کنه
مثلاً اگه بهش 5 بدیم
این آرایه رو بسازه
{5,5,5,5,5}
یا 4 بدیم:
{4,4,4,4}