【发布时间】:2014-12-06 06:05:50
【问题描述】:
我从“float”类型的右值得到 [错误]“float&”类型的非常量引用的无效初始化
#include <stdio.h>
void swap(float &a, float &b){
float temp=a;
a=b;
b=temp;
}
main()
{
int a=10, b=5;
swap((float)a, (float)b);
printf("%d%d",a,b);
}
【问题讨论】:
-
(float)a创建一个右值,一个右值不能绑定到一个左值引用。您需要将a和b声明为浮点数才能使swap(a, b)工作。 -
main()必须是int main()。 -