اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

چطور میتونم توسط اشاره‌گر به یک آرایه دو بعدی اشاره کنم؟

+2 امتیاز
368 نمایش
در ++C زبانی بسیار کوچک‌تر و پاکیزه‌تر در تلاش برای خروج است. (Bjarne Stroustrup)
پرسیده شده سه شنبه ۳۰ آبان ۱۳۹۱ در C++ توسط برنامه‌نویس  
بازتگ شده پنجشنبه ۲۲ فروردین ۱۳۹۲ توسط admin

3 پاسخ

0 امتیاز
 
بهترین پاسخ

اشاره کردن به آرایه‌ی دوبعدی به دو معنی به کار می‌ره. اشاره کردن به یه خونه از آرایه یا اشاره کردن به سطرهای آرایه

۱) اشاره کردن به خانه‌های آرایه

int x[2][3] = {{0}};
int *ptr = &(x[1][1]);
//یا
int *ptr = x[1]+1;

چرا؟ چون x[1] ارجاعی به خانه‌ی اول سطر دوم آرایه است. همون طور که در آرایه‌ی یک‌بعدی نام آرایه ارجاعی به خانه‌ی اول آرایه است.

۲) اشاره کردن به سطرهای آرایه

int x[2][3] = {{0}};
int (*ptr)[3] = &(x[0]);
//یا
int (*ptr)[3] = x;

x ارجاعی به سطر اول آرایه است. و x+n آدرس سطر n ام آرایه.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده شنبه ۱۸ خرداد ۱۳۹۲ توسط prodo  
انتخاب شده شنبه ۱۸ خرداد ۱۳۹۲ توسط admin
+1 امتیاز

با دستور زیر میشه این کارو کرد:

int a[2][3]={0};
    int *p;
    p=*a;

البته خودمم نمیدونم چرا؟ ولی اینجوری جواب میده!
کسی میدونه چرا باید پشت آرایه (که قبلا میگفتیم خودش نوعی اشاره‌گره) * بذاریم تا بشه بهش اشاره کرد؟

پاسخ داده شده یکشنبه ۱۰ دی ۱۳۹۱ توسط CPP_Crawler4  
اشاره به آرایه دوبعدی با اشاره‌گر
0 امتیاز

به این صورت هم میتونید این کارو انجام بدین:

int a[2][3];
int (*p)[3] = a;
پاسخ داده شده پنجشنبه ۱۹ بهمن ۱۳۹۱ توسط CPP_Crawler5