读书人

求解 关于++a = 10;合法a++ = 10;

发布时间: 2012-03-05 11:54:03 作者: rapoo

求解 关于++a = 10;合法,a++ = 10;不合法
c与指针书上写到:
int a = 0;
++a = 10;
++a的结果是a的值的拷贝,并不是变量本身,你无法想一个值赋值;
然后我用vc6编译下是可以的,但是a++ = 10;有语法错误, error:= 左边必须是变量;
求高手赐教;

[解决办法]
就是这样的。

++a用的是a的引用,因此可以作为左值
a++用的是对象拷贝,一次不能作为左值

这也是为什么在for循环中,++i比i++快的原因,当然如果编译器对此做了专门的优化的话,那么从性能上来说是没有区别的。

读书人网 >C语言

热点推荐