اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

نوع بازگشتی sizeof()

+1 امتیاز
58 نمایش

نوع بازگشتی sizeof() یه عدد صحیحه. ولی از نوع signed یا unsigned؟ long یا short یا هیچی؟

یک مشکل در مورد C++ این است که هم‌اکنون گرایشی قوی در زبان وجود دارد که شما را وادار می‌کند پیش از انجام هر کاری، همه‌ی جوانب آن را بدانید. (Larry Wall)
پرسیده شده جمعه ۱۰ آذر ۱۳۹۱ در C++ توسط CPP_Crawler2  
بازتگ شده جمعه ۲۳ فروردین ۱۳۹۲ توسط admin

2 پاسخ

0 امتیاز
 
بهترین پاسخ

در استاندارد C و C++ نوع بازگشتی sizeof یک داده‌ی صحیح بدون علامت در نظر گرفته شده. در استاندارد C99 اندازه‌ی این نوع داده باید حداقل ۱۶ بیت باشه.

هیچ الزامی بر این‌که حتما این نوع داده unsigned int یا unsigned long یا یکی از داده‌های صحیح بدون علامت دیگه باشه تاکید نشده.

در پیاده‌سازی نام این نوع داده size_t گذاشته شده که در حالت کلی قابل مقایسه و تبدیل به انواع داده‌ی صحیح هست.

به طور کلی باید این موضوع تضمین‌شده باشه که size_t امکان نگه‌داری هر اندیسی از یک آرایه رو داشته باشه.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده چهارشنبه ۲۲ خرداد ۱۳۹۲ توسط prodo  
انتخاب شده چهارشنبه ۲۲ خرداد ۱۳۹۲ توسط admin
+1 امتیاز

با توجه به اینکه sizeof یک عملگره و تابع نیست، نمیشه براش نوع مقدار بازگشتی معلوم کرد، ولی خب از اونجایی که اندازه یک نوع داده رو مشخص میکنه قطعا مثبته.
ولی اینکه به هر حال عددی که به عنوان سایز یک نوع داده برمیگردونه، چنده و در محدوده‌ی کدوم نوع داده قرار میگیره، کاملا بستگی به این داره سایز چه نوع داده‌ای باشه، چون ممکنه شما کلاسی تعریف کنید که توش از آرایه‌ها و متغیرهای زیادی استفاده کرده باشین، و وقتی سایزش رو بدست بیارین ببینید عدد بزرگی باشه که در محدوده‌ی short یا حتی int نباشه.
ولی بازم این به عنوان خروجی این عملگره نه اینکه بخوایم بگیم مقدار بازگشتیش از چه نوعیه! چون اصلا تابع نیست!

پاسخ داده شده پنجشنبه ۱۹ بهمن ۱۳۹۱ توسط CPP_Crawler4