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

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

اندازه‌ی ثابت کاراکتری ۴ بایت است؟!

0 امتیاز
634 نمایش

چرا sizeof('a') عدد ۴ رو برمی‌گردونه نه یک؟ مگه اندازه‌ی ثابت کاراکتری ۱ بایت نیست؟

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

1 پاسخ

+1 امتیاز

اندازه‌ی کاراکتر یک بایت هست اما لیترال کاراکتری به int تبدیل می‌شه یا دقیق‌تر یک ترفیع از char که همون صحیح یک‌بایتی هست به int که صحیح ۲، ۴ یا ۸ بایتی هست انجام می‌شه. بنابراین sizeof('a') معادل sizeof(int) هست.
در صورتی که sizeof(char) رو بررسی کنین می‌بینین که مقدار ۱ برمی‌گردونه

نکته با کامپایلر ویژوال استودیو ۲۰۱۰ برای sizeof('a') مقدار ۱ برگردونده می‌شه.

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