这是一些代码
class DengkleTryingToSleep{
public:
int minDucks(int ducks[]);
int temp(int ducks[]){
int size=sizeof(ducks);
cout<<"sizeof="<<size<<"\n";
}
};
int main (int argc, const char * argv[])
{
DengkleTryingToSleep dt;
int arr[]={9,3,6,4};
cout<<"sizeof "<<sizeof(arr);
cout<<"\nsizeof from function "<<dt.temp(arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并输出这个
sizeof 16
sizeof from function sizeof=8
Run Code Online (Sandbox Code Playgroud)
而且我不知道它是如何工作的,因为它返回16(正如在main中调用时所预期的那样)并且从函数调用时返回8
因为数组在传递给函数时会衰减为指针.你得到temp函数中指针的大小.
如果你需要知道函数中数组的长度......你也必须传入它.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |