64,282
社区成员
发帖
与我相关
我的任务
分享
void fun1(int *n)
{
cout << *n;
}
void fun2(int &n)
{
cout << n;
}
void main()
{
int k = 10;
fun1(&k);
fun2(k);
}
编译后产生的机器码,fun1和 fun2是完全一模一样的,也就是说在背后的实现原理上,void fun2(int &n)中的n实际上和fun1中的n一样是个指针。
有空可以简单的学习一下汇编,在编译器中写出C/C++代码后,调试运行,转到反汇编,其原理就一目了然了。