PDA

View Full Version : سوال: نحوه ارسال آرایه به تابع و اطلاعاتی که تابع از آرایه به دست می یاره



idocsidocs
چهارشنبه 17 خرداد 1391, 02:57 صبح
توی کتاب آقای فراهی یبار نوشته که وقتی آرایه به تابع ارسال می شه، شبیه به حالت ارسال متغیر با ارجاع هست ! (پاراگراف آخر صفحه 90)

ولی جایی دیگه نوشته که ارسال آرایه به روش ارجاع کمی تفاوت داره ! (پاراگراف آخر صفحه 91)

بالاخره کدم حرف درسته؟

سوال دیگه اینکه وقتی یه آرایه رو به شکل زیر به تابع می فرستیم، تابع می تونه تعداد عناصر آرایه رو بدست بیاره یا باید توی یه آرگومان دیگه، تعداد عناصر رو به تابع اعلام کنیم؟

int myarr(int a[]);

سوال آخر اینکه توی برنامه نویسی استاندارد، باید موقع اعلان آرایه، تعداد عناصر اون رو تعیین کرد یا به این کار نیازی نیست؟

MAN_UNITED
چهارشنبه 17 خرداد 1391, 04:30 صبح
سلام دوست عزیز شب زنده داری هم حالی داره :لبخند:
وقتی یک آرایه رو به تابع پاس میدی در حقیقت یک اشاره گر به ابتدای آرایه رو پاس میدی یعنی اولین عنصر در حافظه رم
و او حرف خودت هم کاملا درسته باید تعداد عناصر رو هم پاس بدی مثلا n به قول استادمون از کجا تا کجا:لبخند:

و جواب سوال آخرت تعریف آرایه های به دو صورت هستش ایستا و پویا
در روش ایستا باید تعداد عناصر را تخمین بزنی (طول ظاهری) مثلا برنامه برای یک استاد میخوایی بنویسی برای نمرات دانشجوهاش باید تخمین بزنی حداکثر چند تا دانجشو داره مثلا 200 تا میشه
int a[200];
بعد تعداد دانشجوهایی که تو امتحان شرکت کردن میشه n یا طول واقعی آرایه
حالا تو روش پویا یک اشاره گر تعریف میکنی (امیدوارم گیج نشی اشاره گر و خوندی؟:لبخند:) بعد با استفاده new و delete یه حافطه ای تخصیص میدی دیگه اینجا نیاز نیست تخمین بزنی مثلا:
int *a;
a=new int[n];
بعد که پردازش مورد نظر تموم شد باید حافظه داده شده رو پاک کنی:
delete []a;

امیدوارم کمکت کرده باشم

idocsidocs
چهارشنبه 17 خرداد 1391, 11:22 صبح
جواب این سوال رو نگرفتم:

توی کتاب آقای فراهی یبار نوشته که وقتی آرایه به تابع ارسال می شه، شبیه به حالت ارسال متغیر با ارجاع هست ! (پاراگراف آخر صفحه 90)

ولی جایی دیگه نوشته که ارسال آرایه به روش ارجاع کمی تفاوت داره ! (پاراگراف آخر صفحه 91)

بالاخره کدم حرف درسته؟

MAN_UNITED
چهارشنبه 17 خرداد 1391, 12:58 عصر
هر دو تاش درسته آرایه هنگام پاس دادن به تابع ذاتاً ارجاعیه
ولی اینکه چه فرقی داره رو دقیقا نمیدونم فقط میدنم آرایه اسمش یه اشاره گره و اشاره میکنه به اول حافظه ای تو رم سیو شده

idocsidocs
چهارشنبه 17 خرداد 1391, 13:22 عصر
ولی اینکه چه فرقی داره رو دقیقا نمیدونم فقط میدنم آرایه اسمش یه اشاره گره و اشاره میکنه به اول حافظه ای تو رم سیو شده
مرسی

سایر دوستان می تونن در این مورد توضیحات تکمیلی ارائه بدن؟