左值和右值(C语言)
简单来说:a=b
“=” 是赋值符号:把右值的value复制一下,粘贴到左值的地址上存储
a是左值
b是右值
那么就是:b赋值给a
也就是把b的value赋值给a,让a的value等于b的value
(a的地址上存的是b的value)
所以左值可以是变量、表达式,但不可以是常量
(也就是:左值一定是要拥有地址的,它才能存放东西)
所以右值可以是常量,也可以是变量、表达式
(也就是:右值可以没有地址,也可以有地址,但是右值不能没有value)
综上所述:
左值一定是要拥有地址的,它才能把被赋值的value存进去
右值可以没有地址,也可以有地址,但是右值不能没有value,
右值的value一定不能为空,因为右值要把自己的value丢到左值的地址存储
就是:左值=右值 的过程就是:右值小可爱把自己的钱钱(value)丢到左值的钱包(地址位置)里面存储。
但是地址&&value的关系是:一个萝卜一个坑
所以,右值小可爱把钱钱(value)丢到左值的钱包(地址)里面的时候,左值的钱钱(value)就丢失了,所以:左值的钱包(地址)里面只有右值小可爱的钱钱(value)。
当然,左值的钱包(地址)里面的value只是右值小可爱的钱钱(value)的副本,所以右值小可爱的钱包里面的钱钱还是那么多。
左值和右值(C语言)相关推荐
- c语言 变量的左值和右值,C++雾中风景10:聊聊左值,纯右值与将亡值
C++11的版本在类型系统上下了很大的功夫,添加了诸如auto,decltype,move等新的关键词来简化代码的编写与降低阅读代码的难度.为了更好的理解这些新的语义,笔者确定通过几篇文章来简单窥探一 ...
- c语言左值为变量,C语言中左值和右值的区别
在C语言学习过程中,大家或许听到过左值和右值的概念,甚至在调试程序时编译器也会给出" left operand must be l-value " 即左操作数必须为左值!,今天我们 ...
- 《C++语言入门经典》一2.8 左值与右值
2.8 左值与右值 C++中的每个语句.表达式的结果分为左值与右值两类.左值指的是内存中持续存储的数 据,而右值是指临时存储的结果. 在程序中,声明过的独立变量如: Int k; short p; c ...
- C语言左值和右值说明
左值:用于标定特定数据对象的名称或表达式. 这里的数据对象指的是数据存储区域.与C++的面对对象的对象是有区别的. 所以,左值表示引用内存中的地址. 但是有些变量不能修改内存中的值,比如使用了cons ...
- C++/C++11中左值、左值引用、右值、右值引用的使用
C++的表达式要不然是右值(rvalue),要不然就是左值(lvalue).这两个名词是从C语言继承过来的,原本是为了帮助记忆:左值可以位于赋值语句的左侧,右值则不能. 在C++语言中,二者的区别就没 ...
- 【 C 】对左值与右值的一些个人思考
今天重温C语言的指针,看的书是<C和指针>,关于左值和右值以及指针表达式的内容看得甚是迷惑与煎熬,怎么会这么难理解,指针表达式又是作为左值又一会作为右值,而且二者有着不一样的含义,为什么当 ...
- c++中的左值与右值
转载自 http://www.cnblogs.com/catch/p/3500678.html 左值 (lvalue)和右值 (rvalue) 是 c/c++ 中一个比较晦涩基础的概念,有的人可能甚至 ...
- 4.1 c++左值和右值、类型转换
左值和右值 c++的表达式不是右值就是左值. 一个左值表达式的求值结果是一个对象或一个函数,然而以常量对象为代表的某些左值实际上不能作为赋值语句的左侧运算对象.此外,虽然某些表达式的求值结果是对象,但 ...
- c++ 左值 广义左值 右值 纯右值 将亡值
为什么C/C++等少数编程语言要区分左右值? 历史原因: C语言作为一门古老的编程语言,其设计初衷是为了在硬件资源有限的系统上进行高效的编程,因此其语法和语义设计相对较简单.左值和右值的概念最初是由C ...
- C++面试 左值、右值、左值引用、右值引用
1.左值和右值 左值(left-values),缩写:lvalues ,located value 可定位值,其含义是可以明确其存放地址的值,更确切说对其的使用是基于地址 右值(right-valu ...
最新文章
- Java线程详解(2)-创建与启动
- SSH运维总结-【liunx学习】
- 浅谈五大Python Web框架
- java中实现客户姓名添加和显示
- php 生产环境调错
- Java基于opencv实现图像数字识别(一),java开发面试笔试题
- 【python】Tkinter窗口可视化二
- Ubuntu改坏sudoers后无法使用sudo的解决办法
- Minecraft 1.18.2 forge开发 | (1) 开发环境搭建
- linux进不去root,进不了root
- 晶体DSX321G被公认的车载晶振在无人货车上也将功能发挥的淋漓精致
- CSS background-clip
- 写一个块linux设备驱动
- java内存分析详解_深入java内存查看与分析详解
- [开心幽默]一对北京情侣是如何吵架的 !(暴笑)
- 【小白学习记录】渗透测试之信息收集
- 毕业设计-基于MATLAB的含噪语音信号降噪处理系统
- 解决win10搜索框不能用的问题
- 从零开始学习塞班S60v5的开发
- mix2线刷开发板救砖_小米MIX 2手机一键线刷救砖教程,轻松刷回官方系统
热门文章
- 北京上网首选DNS服务器地址,北京最快的DNS服务器地址,北京DNS大全
- Unity动态加载外部服务器上的FBX模型
- 拟牛顿法求解非线性方程组
- 【Info】车载芯片的几个大玩家:飞思卡尔(Freescale), 恩智浦(NXP), 高通(Qualcomm)
- 离线安装OneNote for Windows 10
- 计算机考研哪些专业不考数学,考研“不用考”数学的6类专业,适合数学“学渣”报考!...
- k8s Pod探针(健康检查和服务可用性检查)
- 用按键精灵,写个简单的跳课脚本
- 多重比较你用对了吗?
- 小程序客服关闭自动回复功能后如何解决关注公众号