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

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

عملگر sizeof چیست؟

+2 امتیاز
5,372 نمایش

چرا به sizeof() می‌گن عملگر نه تابع؟ آخه شکلش که تابع هست که. استفاده‌شم دقیقاً مثل توابع هست. کسی می‌دونه sizeof چطور پیاده‌سازی شده؟

برنامه‌ای که تست نشده کار نخواهد کرد (Stroustrup, Bjarne)
پرسیده شده جمعه ۱۰ آذر ۱۳۹۱ در C++ توسط CPP_Crawler3  
بازتگ شده جمعه ۲۳ فروردین ۱۳۹۲ توسط admin

2 پاسخ

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

sizeof عملگری یکانی است که ورودی آن نوع داده یا یک عبارت است و خروجی آن از نوع size_t است. خروجی این عملگر تعداد بایت‌های لازم برای ذخیره‌سازی یک شی از نوع داده‌ی ورودی است.

در صورتی که یک عبارت به این عملگر ارسال شود، کامپایلر بر مبنای قواعد پیاده‌سازی شده نوع نهایی عبارت پس از ارزیابی را به عنوان نوع داده‌ی ورودی به عملگر sizeof در نظر می‌گیرد.

ورودی این عملگر می‌تواند نوع داده‌ی اولیه مانند int یا نوع داده‌ی تعریف شده توسط کاربر مانند انواع کلاس یا ساختار باشد.

استفاده از sizeof با نوع داده و عبارت به شکل زیر است

class X
{
  ...
};
int main()
{
  int x;
  float y;
  cout<<sizeof(X);
  cout<<sizeof(2*y + x);
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده پنجشنبه ۲۳ خرداد ۱۳۹۲ توسط prodo  
انتخاب شده پنجشنبه ۲۳ خرداد ۱۳۹۲ توسط admin
+1 امتیاز

sizeof نمیتونه تابع باشه چرا که تابع نوع داده‌ی مشخصی رو به عنوان آرگومان ورودی میگیره، در حالیکه شما به sizeof هر نوع داده‌ای رو میفرستین.

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