编译出现lvalue required as increment operand的错误

编译出现lvalue required as increment operand的错误

出现这些错误可能是:

1. char a[10]  = {“hello”};

a++;         这里就会报错,因为a是char[]类型的,它表示的是这个数组的首地址和第一个元素的地址,不能直接去操作a++去移动地址,如果想移动可以char *p = a;然后再操作p,p++这样是完全正确的。

 

2. int a = 0;

++a++;     这里也会报错,(++a)++;也是一样的结果,还有--a++;也会报错。a+++++b一样的。

 

3. int fun()

{

    return 1;

}

 ++fun();      这里也会报同样的错误,原因我不清楚,在网上找了找,发现百度知道上有一个回复感觉还可以,哈哈,我也是个菜鸟,你们各位大佬看看是不是有道理,有答案的告诉我一声。

 

这两个运算符是C语言提供的增1运算符和减1运算符,它们都是单目运算符,只需要一个操作数,但操作数只能是变量,不能是常量或表达式。至于你说的它们的使用形式,只能跟一个变量搭配使用,作前缀运算符或后缀运算符,但是只要是变量就行。记住它们的作用是使变量的值增加1 个单位或减少1个单位,而并是单纯意义上的加1或减1。

 

各位发现有其他情况也是报这个问题的告诉我一声。

  • 48
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值