为何a++不可以作为左值而++a能
来源:互联网 发布:淘宝买家怎么申诉 编辑:程序博客网 时间:2024/04/28 07:45
a++的运算结果并不是a这个变量的引用,而是一个临时变量,其值为i的值,所以你无法进行以下运算:
a++=5; 甚至编译器不允许你对一个临时变量重新赋值,上面的表达式会引起编译错误 。
左值,说得通俗一点,就是可以出现在表达式左边的值(等号左边),可以被改变。
可以简单的这么理解(通过C++语法)
你看看前、后++分别是怎样重载的
比如A类中重载两个++吧
A& operator ++ ()
{
++ A.data;
return A;
}
A& operator ++ (int)
{
temp = A.data;
++ A.data;
return temp;
}
后一个是后++
返回的是一个临时变量
当然不能做左值啊
++a返回的是a的引用..
a++返回的一个临时变量的引用..
- 为何a++不可以作为左值而++a能
- 为什么a++不可以做左值,而++a可以
- a++和++a可不可以作为左值
- a++ 与++a能否作为左值
- a++为什么不能作为左值?
- a++不能作为左值的原因
- C语言 a++为什么不能作为左值?
- 左值和右值的区别(以a++和++a为例)
- 数组名a 作为 左值和 右值的区别
- 数组名a 作为 左值和 右值的区别
- 数组名a 作为 左值和 右值的区别
- 数组名a 作为 左值和 右值的区别
- 指针和数组(数组名a作为左值和右值的区别)
- a++ ++a 左值 右值
- a++ 与 ++a 是不是左值?为什么?
- a++和++a左值问题
- 函数的返回竟然能作为左值
- 左值,右值 及(++a)+=(a++)和(++a)=(++a)+(a++)计算
- ASp.NET MD5加密
- openrtsp 当成tcpmp插件时内存管理
- 基于JMF RTP的网络传输媒体流
- HTTP协议详解
- 又想写些工作随感了
- 为何a++不可以作为左值而++a能
- c#资源管理和垃圾回收机制
- 设置Silverlight应用程序滚动条适应方法
- Activity重生机制
- JSP:El表达式的使用
- 安家了
- linux NASM Hello, world!
- sizeof的用法
- [EDI]EDI