2 olivertai olivertai 于 2016.02.10 06:40 提问

关于c++(表达式必须是可修改的左值)
c++

代码如下,在一个类里定义了如下private型成员变量和成员函数,但是在成员函数里给vals赋值时会提示表达式必须是可修改的左值,请问是为什么呢?
private:
char vals[3000];
int numDigits;
BigInt multDigit(char digit) const
{
int temp;
vals = digit;
}

3个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.02.10 09:49

caozhy的回答是正确的。
补充一点:
vals是数组名,digit是字符变量,不能直接赋值。
可根据功能修改,例如:
vals[0]=digit;

caozhy
caozhy 谢谢你的补充 ^_^
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.10 07:25

BigInt multDigit(char digit) const
这里用const修饰这个函数,那么在函数内不能修改成员函数,除非你把const去掉。

caozhy
caozhy 回复olivertai: 使用指针。因为运行时使用指针可以不受编译器的约束。
接近 2 年之前 回复
olivertai
olivertai 回复caozhy: 如果要保留const的话怎么才能修改vals的值呢?
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.02.10 14:18

vals 是数组名,它是常量指针,其数值是不能修改的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!