PDA

View Full Version : سوال: درباره نمایش آدرس حافظه در C



Saeed113
دوشنبه 01 آذر 1389, 22:56 عصر
همانطور که مي دانيد دستور زير آدرس متغير در حافظه را به ما مي دهد:

int x=10;
printf("%p",&x);
آدرسي که در صفحه نمايش داده مي شود شامل تعدادي عدد و حرف است که اين آدرس به ما چه مي گويد ؟ در واقع منظور از آدرس متغير در حافظه چيست ؟ وقتي هم که عدد 10 را به 11 تغير مي دهيم باز م همان آدرس را چاپ مي کند علت چيست؟ آيا مي توان اين آدرس را تغيير داد ؟ اگر قرار باشد از مباحث حافظه استفاده کنيد لطفا اين مباحث را در مقياس بيت بيان کنيد؟
يک سوال ديگر : در دستور فوق از کارکتر فرمتي به صورت %p استفاده کرده ايم . مي خواستم بدانم %p به چه چيزي اشاره دارد ؟ اصلا در برنامه نويسي به اين زبان چه کاره است؟

sajioo
سه شنبه 02 آذر 1389, 00:12 صبح
وقتی یک متغییر در برنامت ایجاد می کنی کامپایلر در قسمت مجاز ، از رم یک فضا برای اون متغییر می گیره. این آدرس شماره ی شروع اون فضای هست که کامپایلر در حافظه ی رم به عنوان متغییر می گیره.
معلومه که با تغییر عدد 10 به 11 هم باز همون آدرسونشون میده. تو داری مقادیر درون اون آدرسو تغییر می دی نه خود آدرسو.
آدرسو نمیشه تغییر داد مگه اینکه متغییر جدید تعریف کنی دیگه.

sh4mid
سه شنبه 02 آذر 1389, 08:06 صبح
سوال ديگر : در دستور فوق از کارکتر فرمتي به صورت %p استفاده کرده ايم . مي خواستم بدانم %p به چه چيزي اشاره دارد ؟ اصلا در برنامه نويسي به اين زبان چه کاره است؟

p% به printf میگه اون چیزی که باید چاپ کنی آدرس یک اشاره گر هست

اینجا (http://www.cplusplus.com/reference/clibrary/cstdio/printf/) کامل دربارش توضیح داده