[求助]++a++与(++a)++
++a++这样不行,为什么(++a)++ 行呢?谢谢.
1. a++ returns a const obj
++a returns a reference.
see the following code --- how to overload ++ and -- in C++.
2. ++a++ does not work since your complier interprets it as
++( (a++) )
Since a++ is a const obj, say b, ++b must not be allowed;
仁兄的意思是++a 返回的变量,a++返回的是常量是不,但为什么会有这种区别的,两者都是自增运算符,为什么会有这种区别?
我不知道别人讨论这个问题是为了什么,但我是为了搞明白一门语言的本质,我的最终目标是希望有能力写一个编译器,
所以对语言的本质就想了解得透切些!
哎.. 没有目标..
我也不是干这行的..
个人爱好,写这耍..呵呵
我觉得你有一种怀才不遇的感慨!
a++是否等价于a=a+1
我写了一段代码
int a=10;
int* p;
p=&(a=a+1); //这是返回变量 ,可为什么a++就返回常量呢?编译器究竟是怎么样拆开来的?
这样编译通过
如果两者等价可为什么
p=&(a++) //就不行
++a拆开来等价于什么?