C语言,基础理解,请老师,朋友留步。

error C2105: '++' needs l-value

这个错误对于 char p[10]; ++p; 出现这个错误我能理解明白;

但是,对于下面这个:
++(x+1);
同样出现:error C2105: '++' needs l-value;
学生就不明白了,希望有老师或者C语言基础理解好的朋友讲解一下;百度未查到此类情况;

                                                    新来的没悬赏;

char p[10],p里面存储的就是这个长度为10的数组的第一个元素的地址,并且p上面存储的地址是不能改变的,所以++p不对。下一个,++(x+1)显然不对,++后面是不能跟表达式的

++后面不能跟表达式,(x+1)属于表达式的一种

你将 ++Y 理解成:Y=Y+1 后,就可以理解你上面的那句为什么不行!
++(x+1),展开后为:(x+1) = (x+1) + 1,看看被赋值的,不是一个能接受被赋值的变量吧

个人认为:
x+1结果应该是常量,常量再++,是不可以的。
本人也是菜鸟,错了别见怪。

91program 的解释很好
你了解了“++”在C语言的运算过程。就能明白。推荐你看看《C陷阱与缺陷》

lvalue 左值,可以放在赋值左边,必须是变量或者数组某一项

http://baike.baidu.com/view/836474.htm

char p[10];
你可以理解为: char * const p;

我认为++后面不能跟表达式,你可以再写一个x+=1;列两个式子。
不好意思我也是才开始学习C语言很有可能说的不太对。