این کد چرا خروجیش
3
4
میشه در حالی که من انتظار دارم 3 3 چاپ بشه ؟!!
#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); }
این آرایه رو که ارجاع میدی به تابع تبدیل به پوینتر میشه و این عدد 4 تعداد بیت های پوینتر هست که بهت میده و اگر طول آرایه ات هرچقدر هم باشه این همون عدد 4 رو بهت میده
این مقاله رو بخون کاملا متوجه موضوع میشی
http://www.cplusplus.com/faq/sequences/arrays/sizeof-array/