求助,c语言报错
报错信息为lvalue required as increment operand
求解释!
本帖最后由 jackz007 于 2019-5-12 23:43 编辑
如果是内存拷贝,难道用现成的系统函数 memcpy() 不能满足需要吗? 本帖最后由 Croper 于 2019-5-12 23:46 编辑
不知道楼主明不明白左值和右值,
简单来说,左值就是能进行赋值的值,而右值是不能进行赋值的。(这不是定义,要确切的定义自己上网搜一搜)
举个例子
int b=a+3;
这里表达式中的b就是左值,能够进行赋值。而(a+3)虽然在内存中也会出现,但是你对其进行赋值时变回报错
int (a+3)=5; //错误的赋值语句,需要左值
而这里,你的(s+m)就是一个右值,而你又想对这个右值进行++运算,结果当然是会报错的 *(s+m)++ c从来就没有这种写法,你想多了。老老实实按语法来写。
Croper 发表于 2019-5-12 23:45
不知道楼主明不明白左值和右值,
简单来说,左值就是能进行赋值的值,而右值是不能进行赋值的。(这不是定 ...
结合小甲鱼的左值和右值的贴子,懂了,多谢
页:
[1]