تغییر سایز خودکار آرایه زمان ارسال به تابع !!! - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تغییر سایز خودکار آرایه زمان ارسال به تابع !!!

+1 امتیاز

این کد  چرا خروجیش

3

4

میشه در حالی که من انتظار دارم 3 3 چاپ بشه ؟!! surprise

#include <iostream>

void  func(char a[])
{
    std::cout<<sizeof(a)<<std::endl;
}
int main()
{
    char a[3]="is";
    std::cout<<sizeof(a)<<std::endl;
    func(a);
}

 

 

سوال شده آذر 24, 1392  بوسیله ی SARA (امتیاز 50)   3 9 15

1 پاسخ

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

این آرایه رو که ارجاع میدی به تابع تبدیل به پوینتر میشه و این عدد 4 تعداد بیت های پوینتر هست که بهت میده و اگر طول آرایه ات هرچقدر هم باشه این همون عدد 4 رو بهت میده

این مقاله رو بخون کاملا متوجه موضوع میشی

http://www.cplusplus.com/faq/sequences/arrays/sizeof-array/

پاسخ داده شده آذر 24, 1392 بوسیله ی Elyas74 (امتیاز 1,144)   6 14 27
انتخاب شد آذر 25, 1392 بوسیله ی مصطفی ساتکی
...