编译提示 **lvalue required as increment operand** 的问题分析

编译提示 lvalue required as increment operand 的问题分析

字面意思是提示我们代码中的左值应该是一个可以增加(或减少)的一个操作数,即左侧被赋值的数应该是一个变量,不能是常量。原因也很简单:我们在对某一个值进行自增或自减的操作时,希望保留的是计算后的值,变量可以很容易地在原始地址上保留计算后的值,而常量则不能被自增自减所修改,故出此错误。

C语言中的常量主要有整型常量(int a = 0;),字符型常量( char b = “c”;),实型常量(double d = 2e3f;),除了这些显而易见的常量,还有一些容易被忽略的,譬如:任一类型的数组的首地址,函数地址。

以下操作是不被允许的:

1,

 int a[8]={1,2,3,4,5,6,7,8};
	  a++;
	  ++a;
	  a--;
	  --a;

2,

int fun()
	{
    		return 0;
	}
	
	++fun();

千万不要想写骚代码而犯了这样的错~

此外,向数组名赋值的操作( a += 1 )会引起另外的错误: assignment to expression with array type

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值