يك سوال در مورد اشاره گرها
|
2007-09-26, 04:02 PM,
ارسال : #1
|
|||
|
|||
يك سوال در مورد اشاره گرها
سلام
همه ميدانيم كه p* يك اشاره گر است و p** يك اشاره گر است كه خود به اشاره گر ديگري اشاره ميكند كنجكاوم بدانم كه ايا p*** وجود دارد و آيا مجاز هست؟ با تشكر. |
|||
2007-09-26, 04:53 PM,
ارسال : #2
|
|||
|
|||
پاسخ: يك سوال در مورد اشاره گرها
You're free to add as many * as you want to a variable. So *************p is even a valid pointer
|
|||
2007-09-27, 01:21 AM,
ارسال : #3
|
|||
|
|||
پاسخ: يك سوال در مورد اشاره گرها
بله اون همه یک اشاره گر به نوع اشاره گر به اشاره گر است
اما استفاده رسمی ندارد |
|||
2007-09-27, 12:09 PM,
ارسال : #4
|
|||
|
|||
دوست عزيز atkmain
با تشكر از راهنمايي شما اگر ميشود يك مثال ساده بزنيد؟ |
|||
2007-09-27, 03:14 PM,
ارسال : #5
|
|||
|
|||
مثلا یک آرایه ی سه بعدی رو در نظر بگیرین. می شه به صورت p*** در نظر گرفت و یا تعریف وئیاده سازیش کرد (یا آرایه های چند بعدی با هر تعداد ستاره پشتش) اما مشخصه که دستیابی و کار باهاشون سخت تر میشه و امکان خطا ها بیشتر میشه.
نمونه ی دیگه یک آرایه از آرایه ای از رشته ها (رشته منظورم خود نوع داده ی string نیست منظورم آرایه ای از کاراکتر ها یا اصطلاحا c-style string هست) یعنی یک آرایه ی دو بعدی از رشته ها. مثلا می خوایم یه همچین آرایه ای رو با اشاره گر ها پیاده سازی کنیم. طبیعیه که در این حالت p* مشخص کننده ی خود رشته هست. p** مشخص کننده ی ابتدای آرایه و p*** مشخص کننده ابتدای آرایه ی بعدی است Don't lose time, Join the open source community |
|||
2007-09-28, 04:29 AM,
ارسال : #6
|
|||
|
|||
توجه بکنبد که p*** در دوجا ایتفاده میشد
۱ . در تعریف مثل int ***p ۲. در استفاده از مقدار val = ***p اینم یک مثال int n = 4 ; int *n_p ; int **n_pp ; int ***n_ppp ; n_p = &n ; n_pp = &n_p ; n_ppp = &n_pp ; printf("%d" , ***n_ppp); یک نمون از استفاده های ان هم آرایه های چن بعدی است که meloman به آن اساره کردند که چند دسته ان ۱. اشاره گری به یک آرایه ای از مقدارها ( دو بعدی یا چند بعدی ) ۲. اشاره گری به یک آرای از اشاره گرها ( و هر اشاره گر در آرایه یک بعدی (عموما ) یا چند بعدی خود می تواند یکی از موارد یک یا ۲ باشد ) ( که استفاده به این روش بعد از دو بعد فوق العاد برنامه را پیجیده و اشکال زدای را سخت می کند ( نیازی هم نیست ) ) |
|||
2007-09-28, 01:36 PM,
ارسال : #7
|
|||
|
|||
Re: يك سوال در مورد اشاره گرها
unixsvr4 نویسنده :كنجكاوم بدانم كه ايا p*** وجود دارد و آيا مجاز هست؟دوستان اطلاعات کافی دادند ولی من این رو اضافه کنم که فلسفه زبان سی، قوانین محکم ولی حداقلی است. مثلا می گه جلوی هر چیز که * بگذارید، ازش اشاره گر ساخته اید همین. اینجوری برخورد نمی کنه که بگه p* یک اشاره گر است و p** یک اشاره گر به یک اشاره گر و مثلا p*** تعریف نداشته باشه. بلکه با یک قاعده ساده ولی خیلی محکم و کارا می گه : هر چیزی که جلوش ستاره باشه، اشاره گر است. حالا می خواهی p*** داشته باش ( که می شه یک اشاره گر به یک اشاره گر به یک اشاره گر) یا p****************** که می شه یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر به یک اشاره گر. آزادی عقیده و کیبرد حق هر انسان است. <!-- w --><a class="postlink" href="http://www.FreeKeyboard.net">www.FreeKeyboard.net</a><!-- w --> |
|||
2007-09-28, 04:58 PM,
ارسال : #8
|
|||
|
|||
با تشكر از راهنمايي هايي كه كردين
متشكرم. |
|||
|