امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اشاره گر
نویسنده پیام
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #1
اشاره گر
تو اين كد من ادرس s رو گرفتم و مي خوام چاپ كنم مي نويسه -36 مگه ادرس مي تونه منفي باشه

int main()
{
int *a,s,;
s = 1;
a = &s;

printf("%d",a);

}
۲۵-شهریور-۱۳۸۵, ۲۲:۱۰:۳۹
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
RE: اشاره گر
آدرس همیشه باید از نوع unsigned تعریف بشه ! تعجب نکن که CPU تفاوت اعداد منفی و مثبت رو تشخیص نمیده !! در واقع این برنامه نویس هست که مشخص می کنه از بیت علامت باید استفاده بشه یا نشه ! اعداد unsigned دارای بیت علامت نیستند و اون بیت علامت به عنوان قسمتی از داده باینری محسوب میشه ! شما که متغیر اشاره گرت رو از نوع int تعریف کردی در واقع بطور پیش فرض علامت دار یا signed در نظر گرفته میشه . موقع چاپ هم میخوای که به عنوان یک عدد علامتدار باهاش برخورد بشه و اینه که بیت علامت رو کامپایلر در نظر میگیره و ممکنه در صورت 1 بودن اون بیت ، باهاش مثل یک عدد منفی برخورد کنه  و عددی منفی برات چاپ بشه .

من همین برنامه رو چک کردم ولی در هر دوحالت ( علامتدار و بی علامت ) عددی مثبت و مشابه دریافت کردم . علتش این بود که بیت آخر در دو حالت 0 بود و در نتیجه تغییری در جواب حاصل نمیشد ولی توی سیستم شما وضعیت میتونه فرق بکنه . میتونه اونجا متغیر در آدرسی قرار بگیره که بیت علامت هم بخواد 1 بشه . اون وقته که جواب ها فرق خواهد کرد !

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۲۶-شهریور-۱۳۸۵, ۱۸:۲۸:۰۹، توسط Mamad2003.)
۲۶-شهریور-۱۳۸۵, ۱۸:۲۱:۵۰
ارسال‌ها
پاسخ
تشکر شده توسط : فاطمه وطن دوست, athlonme


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  اشاره گر (تورو خدا كمك كنيد) sh_teta 13 8,379 ۲۸-شهریور-۱۳۸۵, ۱۳:۴۸:۲۶
آخرین ارسال: sh_teta

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS