لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
يك سوال در مورد اشاره گرها
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
 
با تشكر از راهنمايي هايي كه كردين

متشكرم.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان