这句话如何编程理解呢?

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:40:56
对于函数f2, 参数是一个double的引用,即这个函数可能修改参数d的值,而如果实参是int型,引用指向的其实是个指向临时变量double temp的引用,函数内对d的所有修改都不能表现到实际的参数d身上,这与函数的愿意是不符的。

如何编写一个程序理解这句话呢?

第一,根据编译器不同,程序可能会提示警告或是错误,因为参数类型不同
第二,如果编译通过,那么在发生函数调用的时候会进行类型转换,而转换的结果会放到临时变量,因此,修改的其它是临时变量的值,因此函数调用的实参其实并未发生改变,也就是上面那句话的意思

void f2(double &d)
{
d = d * 2.3;
}

main()
{
int a=4;
f2(a);
cout<<a;
}