gpt4 book ai didi

c++ - 运算符返回冲突的大小

转载 作者:行者123 更新时间:2023-11-30 18:19:19 25 4
gpt4 key购买 nike

这是一些代码

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;
}

其输出是

sizeof 16
sizeof from function sizeof=8

我不知道这是如何工作的,因为它返回 16 (正如在 main 内部调用时所预期的那样)当从函数调用时返回 8

最佳答案

因为数组在传递给函数时会衰减为指针。您将在 temp 函数中获取指针的大小。

如果您需要知道函数中数组的长度...您也必须将其传递进去。

关于c++ - 运算符返回冲突的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9339250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com