با سلام
دوستان من در مورد این خط برنامه نویسی حسابی گیج شدم
سوالی که برام پیش اومده : چطور یک ادرس 16 بیتی یعنی 0x4000 به char تبدیل میشه ؟؟؟char *address = (char *) 0x4000; //.
مگه داریم ؟؟ مگه میشه ؟؟
با سلام
دوستان من در مورد این خط برنامه نویسی حسابی گیج شدم
سوالی که برام پیش اومده : چطور یک ادرس 16 بیتی یعنی 0x4000 به char تبدیل میشه ؟؟؟char *address = (char *) 0x4000; //.
مگه داریم ؟؟ مگه میشه ؟؟
حجم حافظه ایی که پوینتر میگیره نسبت به پلتفرمی که روی اون کد مینویسید می تونه فرق میکنه. مثلا برای ویندوز 64 بیتی ( 8 بایت همون 64 بیت ) و برای Avr (16 یا 24 بیت ) هست.
الان اشارگری که شما تعریف کرده به خونه 0x4000 هگز اشاره میکنه و از نوع کاراکتر هم هست.یعنی فقط یک بایت رو میتونید بنویسید یه بخونید.
برای دیدن اندازه هر متغییر میتونید از printf("size of porinter:%d",sizeof(address))
استفاده کنید.
متوجه نشدم مهندس .... میشه کامل تر توضیح بدید
وقت بخیر
آدرس شما 16 بیتی هست و این یک اشاره گر هست و داره به یک char اشاره میکنه که 8 بیت هست !!