编译出现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。

 

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

你可能感兴趣的:(C/C++,Debug类)