鉴于以下计划,
#include <iostream>
using namespace std;
void foo( char a[100] )
{
cout << "foo() " << sizeof( a ) << endl;
}
int main()
{
char bar[100] = { 0 };
cout << "main() " << sizeof( bar ) << endl;
foo( bar );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出
main() 100
foo() 4
Run Code Online (Sandbox Code Playgroud)
可能重复:
作为参数传递的Sizeof数组
鉴于下面的函数,我理解sizeof返回数组中类型指针的大小.
int myFunc(char my_array[5])
{
return sizeof(my_array);
}
Run Code Online (Sandbox Code Playgroud)
但是,在未作为参数传递的数组上调用sizeof通常会返回数组的大小.
是什么导致这种不一致?将数组作为参数传递时获取数组大小的最佳方法是什么?