پنل پیامک رایگان | بهترین پنل اس ام اس

سامانه پیامک رایگان, رایگان اس ام اس, سامانه پیامکی مجانی, پنل اس ام اس, سامانه پیام کوتاه, پنل پیام کوتاه, ارسال اس ام اس تبلیغاتی, پنل پیامک, پنل sms.

پنل پیامک رایگان | بهترین پنل اس ام اس

سامانه پیامک رایگان, رایگان اس ام اس, سامانه پیامکی مجانی, پنل اس ام اس, سامانه پیام کوتاه, پنل پیام کوتاه, ارسال اس ام اس تبلیغاتی, پنل پیامک, پنل sms.

پنل اس ام اس رایگان - شماره اختصاصی رایگان - امکان ارسال و دریافت در هر ساعت شبانه روز - بازگشت پیام های مسدود تبلیغاتی - ارسال منطقه ای.
بهترین پنل اس ام اس SMS تبلیغاتی انبوه ✓ خرید پنل پیامک رایگان ✓ نمایندگی بهترین پنل پیامک خدماتی مخابرات به صورت رایگان.

بایگانی

۱ مطلب با کلمه‌ی کلیدی «اموزش رایگان رنامه نویسی» ثبت شده است

عملگر های مربوط به اشاره‌گر

جمعه, ۲۷ اسفند ۱۴۰۰، ۰۸:۰۴ ب.ظ

#pointer #اشاره_گر

🔹عملگر های مربوط به اشاره‌گر :
در رابطه با استفاده از اشاره‌گر ها دو عملگرِ * و & مورد استفاده قرار می‌گیرند.

🔺عملگر * :
برای تعریف یک اشاره‌گر و هم چنین مشخص کردن محتویات جایی که متغیر اشاره‌گرش به آن اشاره می‌کند استفاده می‌شود.

🔺عملگر & :
آدرس جایی که متغیر اشاره‌گرش به آن اشاره می کند را بر می‌گرداند.

به عنوان مثال به این قطعه کُد توجه کنید:
int x;
double y;

int *ptrP1 , *ptrP2;

x = 2018;
y = 1397;

ptrP1 = &x; //1️⃣
ptrP2 = &y; //2️⃣

کُد بالا یک متغیر صحیحِ 4 بایتی به نام x در خط بعد یک متغیر 8 بایتی به نام y و در نهایت دو اشاره‌گر صحیحِ 4 بایتی با نام ptrP1 و نام ptrP2 ایجاد می‌کند.

فرض کنید متغیر x در خانه‌ی 100 حافظه باشد و چون 4 بایت است پس 4 بایت از حافظه را اشغال می‌کند هم چنین فرض کنید متغیر y در خانه‌ی 105 حافظه باشد و چون 8 بایت است پس 8 بایت از حافظه را اشغال می‌کند.

حال دستور 1️⃣ باعث می‌شود اشاره‌گر ptrP1 به x و دستور 2️⃣ باعث می‌شود
اشاره‌گر ptrP2 به y اشاره کند.

🔺اما اگر برنامه‌ی بالا را اجرا کنیم، جواب درستی نخواهیم گرفت ؛ چرا
اگر ما اشاره‌گر ptrP1 را چاپ کنیم عدد 2017 چاپ خواهد شد ولی اگر اشاره‌گر ptrP2 را چاپ کنیم عدد 1396 چاپ نخواهد شد و جواب یا چیز دیگری است یا کامپایلر خطا می‌گیرد، چرا که متغیر y هشت بایت از حافظه را اشغال می‌کند اما اشاره‌گر ptrP2 تنها می‌تواند به چهار بایت اشاره کند؛ این یعنی از 8 بایت متغیر y فقط 4 بایت اول‌‍ش درون اشاره‌گر ptrP2 ریخته می‌شود و 4 بایت بعدی گم می‌شد یا کامپایلر خطا می‌گیرد.

🔸پس باید همیشه توجه داشته باشیم متغیرها با اشاره‌گرها هم‌نوع باشند تا با خطا یا نتیجه‌ی نادرستی روبه‌رو نشویم.

🔺برای حل مشکل بالا می‌توانیم نوع ptrP2 را به double تغییر دهیم:

int x;
double y;

int *ptrP1 ;
double *ptrP2;

x = 2018;
y = 1397;

ptrP1 = &x;
ptrP2 = &y;
 

  • علی حاج