مشاهده نسخه کامل
: char **a=new char*[9];
ara.look
12-08-2009, 00:00
میخواستم بدونم که معنی عبارت بالا چی میشه؟
لطفا کلمه به کلمه بگید..
ممنون.
همان طور که می دانید * علامت اشاره گر هست و یه اشاره گر به آدرسی از حافظه اشاره می کنه که توی این
آدرس می تونه هر چیزی(مثلا آرایه ای از جمله ها(رشته سبک سی)) باشه واما
در کد شما وجود دو علامت * نشانه ی وجود دواشاره گر هستش که یکی اشاره گر به char هست و دیگری
اشاره گری به اشاره گر قبلی(اشاره گر به char ) هستش.
واما یک رشته(جمله) در سی و سی پلاس چیزی نیست جز اشاره گری به char .
بنابراین کد شما اشاره گری به یک رشته است. رشته هایی که نمی توانند بیش 9 کاراکتر داشته باشند.
ara.look
13-08-2009, 12:56
من هیچی نفهمیدم...
در ادامه صحبت آقا مهدی، در اینجا a یک آرایه 9 عنصری هست که هر عضوش مثل
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یک اشارگر محسوب میشه، در نتیجه باید برای تک تک این اعضا از عملگر new دوباره استفاده کنید و حافظه از نوع char بگیرین
مثل این مثال که به هر عضو a یک اشارگر از نوع رشته به طول 25 کاراکتر تخصیص داده شده
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ara.look
13-08-2009, 14:25
++++++++++++++
معنی عبارت بالا چیه؟
9 تا اشارگر از نوع char
ara.look
13-08-2009, 21:04
+++++++++++
اشاره گر یا pointer یعنی قسمتی از حافظه که بجای اینکه در اون اطلاعات قرار داشته باشه آدرسی قرار داره که اون آدرس در واقع آدرس اون قسمت از حافظه هست که اطلاعات واقعی در اونجا قرار داره. در زبان C یک ستاره * کنار متغیر اونرو تبدیل به اشاره گر میکنه. مثلا int a یعنی مغیر a قسمتی از حافظه هست که در اون یک عدد قرار میگیره. اما int *a یعنی a یک متغیر هست که در اون یک آدرس قسمتی از حافظه قرار میگیره که اون آدرس یک آدرس از حافظه هست که در اون عدد قرار داره.
توضیحات بقیه کاملا واضح هست.
ببینید به نظر من دانستن اسم اشاره گر یا از اینجور چیزا چندان مهم نیست.(با مرور زمان اسم رو یاد می گیرید.)
بترین راه این هست که کد نویسی کنید و سعی کنید برنامه طوری باشد که جاهایی که نمی دانید و نمی فهمید رو در خروجی چاپ کند.
برنامه رو می نویسن چیزی نیست که حفظش کنن یا...
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.