C++ c+中的引用调用是如何工作的+;?
考虑以下功能原型:C++ c+中的引用调用是如何工作的+;?,c++,pass-by-reference,C++,Pass By Reference,考虑以下功能原型: swap(int &a,int &b); “x”和“y”是主函数的两个局部整数。 假设控件位于main()函数中。 现在,当编译器遇到这种类型的语句时:swap(x,z) 引擎盖下面到底发生了什么(我的意思是,在内存位置方面)? 我的问题是:- 在swap()函数的堆栈中是否为a,b分配了内存?如果分配了内存,它将存储什么 通过引用调用是如何工作的 在swap()函数的堆栈中是否为a,b分配了内存?如果分配了内存,它将存储什么 首先,在调用 SavaPPTR
swap(int &a,int &b);
“x”和“y”是主函数的两个局部整数。
假设控件位于main()函数中。
现在,当编译器遇到这种类型的语句时:swap(x,z)代码>
引擎盖下面到底发生了什么(我的意思是,在内存位置方面)?
我的问题是:-
在swap()函数的堆栈中是否为a,b分配了内存?如果分配了内存,它将存储什么
通过引用调用是如何工作的
在swap()函数的堆栈中是否为a,b分配了内存?如果分配了内存,它将存储什么
首先,在调用<代码> SavaPPTR(INT*A,INT*B)时,考虑同一问题的答案,假设堆栈用于传递参数,在调用<代码> SavaPPTR(&x,y)时,一些内存将被分配给<代码> A<代码>代码> B>代码>。该内存将保存指向
x
和y
的指针
传递引用时也会发生同样的情况:在堆栈上分配一些内存来传递引用a
和b
,并使用对x
和y
的引用进行初始化。这种内存通常具有与指针相同的布局,但标准并不要求这样做:用于传递引用的结构是特定于实现的且不透明的
通过引用调用是如何工作的
与按值调用的工作方式相同,只是编译器知道构造引用,而不是复制所传递的对象
在swap()函数的堆栈中是否为a,b分配了内存?如果分配了内存,它将存储什么
首先,在调用<代码> SavaPPTR(INT*A,INT*B)时,考虑同一问题的答案,假设堆栈用于传递参数,在调用<代码> SavaPPTR(&x,y)时,一些内存将被分配给<代码> A<代码>代码> B>代码>。该内存将保存指向
x
和y
的指针
传递引用时也会发生同样的情况:在堆栈上分配一些内存来传递引用a
和b
,并使用对x
和y
的引用进行初始化。这种内存通常具有与指针相同的布局,但标准并不要求这样做:用于传递引用的结构是特定于实现的且不透明的
通过引用调用是如何工作的
与按值调用的工作方式相同,只是编译器知道构造引用,而不是复制所传递的对象
swap()函数的堆栈中是否有为a,b分配的内存
排除函数调用作为优化进行内联扩展的可能性:是的,将在调用堆栈上分配内存
如果分配,它将存储什么
可以用来访问引用对象的东西。实际上,使用引用对象的内存地址
swap()函数的堆栈中是否有为a,b分配的内存
排除函数调用作为优化进行内联扩展的可能性:是的,将在调用堆栈上分配内存
如果分配,它将存储什么
可以用来访问引用对象的东西。实际上,使用引用对象的内存地址
通过值传递时,会为对象分配堆栈内存。通过指针或引用传递时,堆栈上的内存仅分配给变量的指针/地址
在语法中,通过引用调用与通过值调用类似。但是在引擎盖下有指针,所以在使用引用时可以使用虚拟函数进行动态调度
通过值传递时,会为对象分配堆栈内存。通过指针或引用传递时,堆栈上的内存仅分配给变量的指针/地址
在语法中,通过引用调用与通过值调用类似。但是在引擎盖下有指针,所以在使用引用时可以使用虚拟函数进行动态调度
这里的基本答案是堆栈内存和堆内存之间的区别
当您传递值时,您将值推送到堆栈上“传递值”堆栈上的一个空间被分配给该值(好处是它非常快!但是堆栈也受到系统的严格控制)
当您通过引用时,您正在将指针传递给分配的内存对象,在系统和C++中,其中的一个地方将创建一个指针来指示堆中资源的最佳猜测。p>
< >因为C++不能预料到参考资源的大小,因为程序运行到完成,它使用了在应用程序实例化时配置的垃圾存储器(是的嗡嗡词WEEEE)!(下一次,当有人说“炸了堆栈”时,他们错了,他们把堆栈炸了,哎呀!真的很难炸了堆栈,大部分时间内存都被限制了)
关于这方面的伟大文章:
干杯!不要长时间工作这对你不好:)这里的基本答案是堆栈内存和堆内存之间的区别
当您传递值时,您将值推送到堆栈上“传递值”堆栈上的一个空间被分配给该值(好处是它非常快!但是堆栈也受到系统的严格控制)
当您通过引用时,您正在将指针传递给分配的内存对象,在系统和C++中,其中的一个地方将创建一个指针来指示堆中资源的最佳猜测。p>
<>因为C++不能预期参考资源在程序运行到完成时的大小,它使用在应用程序实例化时配置的垃圾存储器(是的嗡嗡单词WEEEE)