gpt4 book ai didi

c++ - by-value传递参数的内存消耗对比。引用

转载 作者:行者123 更新时间:2023-11-30 04:22:16 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
What’s the difference between passing by reference vs. passing by value?

我知道标题可以代表许多其他已回答的问题,我相信我的非常具体的问题没有在其他线程中得到回答(我已经搜索过,如果重复,抱歉)。

致企业:考虑下一个签名:

答:

void MyFunction(long int x);

乙:

void MyFunction(long int & x);

和下一个用法:

void main()
{
short int y = 0;
MyFunction(y);
...
}

我的问题是关于MyFunction的内存栈帧中参数的内存消耗。

  1. 在情况A中,参数是按值传递的,是否意味着它会消耗sizeof(short int)字节?

  2. 在情况 B 中,参数通过引用传递,假设编译器将使用指针实现它,这是否意味着它将消耗 sizeof(pointer_type) 字节 - 这可能是比 short int 还多?(有人告诉我,使用引用时它可能会消耗 64 位,具体取决于平台)

请注意,该函数接收 long int 类型,因为我想知道它在这两种情况下是否有任何影响。

还有另一个小问题 - 任何人都可以发布一个示例,其中编译器不会使用指针实现按引用传递的参数吗?

谢谢,阿萨夫。

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