博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ Error : initial value of reference to non-const must be an lvalue
阅读量:5930 次
发布时间:2019-06-19

本文共 602 字,大约阅读时间需要 2 分钟。

如下这段代码,编译报错:

Error : initial value of reference to non-const must be an lvalue

#include 
using namespace std;void test(float *&x){ *x = 1000;}int main(){ float nKByte = 100.0; test(&nKByte); cout << nKByte << " megabytes" << endl;}

  

原因为test函数的参数是个引用, 你有可能修改这个引用本身的值(不是引用指向的那个值),这是不允许的。

所以一个修复办法为声明引用为const,这样你告诉编译器你不会修改引用本身的值(当然你可以修改引用指向的那个值)

修改版1:

void test(float * const &x){    *x = 1000;}

另一个更简单的修改办法是直接传递指针,

修改版2:

void test(float * x){    *x = 1000;}

  

reference:

http://stackoverflow.com/questions/17771406/c-initial-value-of-reference-to-non-const-must-be-an-lvalue

 

转载地址:http://yyutx.baihongyu.com/

你可能感兴趣的文章
支付宝扫码支付主业务流程以及实现
查看>>
[转载]getBoundClientRect函数详解
查看>>
51nod 1010 只包含因子2 3 5的数 二分答案
查看>>
文件操作函数
查看>>
Reflection: Congestion Avoidance and Control
查看>>
关于 eclipse 插件JsonEditorPlugin-0.9.4安装与使用
查看>>
在Ubuntu上搭建hive环境
查看>>
[POJ] #1003# Hangover : 浮点数运算
查看>>
常州day5
查看>>
算法相关(一)
查看>>
Java开发中未整理的资料
查看>>
ubuntu安装LDAP
查看>>
扩展欧几里得(求解线性方程)
查看>>
计算机网络术语总结4
查看>>
JS中 HTMLEncode和HTMLDecode
查看>>
计算机基础
查看>>
计算智能 Computational Intelligence,CI
查看>>
Codeforces Round #369 Div. 2 D - Directed Roads
查看>>
斐波那契1,1,2,3,5,8.... 求第n个数的斐波那契
查看>>
Jenkins与SVN持续集成
查看>>