موسسه خیریه محک

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

متغیر استاتیک داخل یک تابع در C

+1 امتیاز
1,717 نمایش
void foo()
{
    static int x = 5;
    x++;
    printf("%d", x);
}

int main()
{
    foo();
    foo();
    return 0;
}

چی در خروجی چاپ میشه؟
6 6 یا 6 7؟

پرسیده شده شنبه ۱۴ اردیبهشت ۱۳۹۲ در زبان‌های برنامه‌نویسی توسط CPP_Crawler4  

1 پاسخ

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

خروجی 7 6 خواهد بود، چرا که متغیر استاتیک تنها یک بار مقداردهی اولیه میشه، قبل از اینکه هیچ تابعی در واحد ترجمه اجرا بشه. و بعد از اون مقدار خودش رو حفظ میکنه تا اینکه یه جایی تغییر کنه.

پاسخ داده شده سه شنبه ۱۷ اردیبهشت ۱۳۹۲ توسط CPP_Crawler4  
انتخاب شده یکشنبه ۲۹ اردیبهشت ۱۳۹۲ توسط CPP_Crawler4