C语言左值右值的个人见解
来源:互联网 发布:php mvc框架 编辑:程序博客网 时间:2024/05/17 23:26
左值(location value)是可寻址的值,也就是地址值
右值(read value)是可读的值,也就是数据值
i++与++i前者是右值,后者是左值,可以理解为在i++与++i重载中
i++的实现是:
int temp = i;
i = i + 1;
return temp;
而++i的实现是:
i = i + 1;
return i;
前者返回的是编译器自动分配的临时变量,是不可寻址的,后者返回的是i本身,所以前者为右值,后者为左值。
同理对于指针int *p;++p,++*p为左值,p++为右值,但*p++为左值,因为++和*操作符都是从右向左操作的,*p++最后执行的是*(间接访问),*返回的是lexp(左值)。
同时须注意前缀++和--返回lexp(左值),注意后缀++和--返回rexp(右值)//这里和C和指针这本书有出路,书中无论前后返回结果都是rexp,不同的编译器结果不同,Dev-C++
和书中相同,VS2012前缀返回lexp。
0 0
- C语言左值右值的个人见解
- 个人学习C语言的见解
- C语言的简单介绍与描述(个人见解)
- 个人对C语言字节对齐问题的一些见解
- 关于c语言的传参问题个人见解
- C语言union类型和C语言 uchar类型的个人见解
- 易语言个人见解
- 对C语言一些个人见解系列:指针和一维数组的关系
- 关于C语言中 rand()函数的一些个人积累和见解z
- J2ME的个人见解
- UML的个人见解
- Http的个人见解
- GeoQuiz的个人见解
- JVM 的个人见解
- 反射的个人见解
- BeautifulSoup的个人见解
- 对C#.NET编程规范的个人见解
- 对C#.NET编程规范的个人见解
- 10.28NOIP模拟总结
- LayoutInflater的inflate方法
- Intellij idea Ultimate 14.* 密钥生成器
- LightOJ - 1044 Palindrome Partitioning(DP)
- 怎样在spring初始化完成后执行一些操作?
- C语言左值右值的个人见解
- 什么是事务
- js控制div展开和收回
- 飞凌2440开发板的led驱动和应用程序
- 求三个数的最大最小值
- 欢迎使用CSDN-markdown编辑器
- 使用函数找出指定范围内的完数
- 负margin的经典利用之用绝对定位来居中
- JDBC-Statement