码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 左值和右值


    在 C 语言中有两个概念,一个是“左值”,另外一个是“右值”。

    1.赋值目的

    赋值表达式语句的目的是把值存储到内存上,其中:

    1. 用于存储值的数据区域统称为“数据对象”(这和面向对象的“对象”不同,C 只会在提及左右值概念的时候才会提及这个术语)
    2. 使用“变量名”是标识对象的一种方式,除此以外,指定数组的某元素、结构体的某成员、指针表达式也都可以作为对象的标识

    2.左值右值

    因此,沿着上述思路可以得到左右值得概念。

    2.1.左值

    左值:是可以用于标识或定位存储位置的标签。

    1. 左值指向一个对象,可以引用内存中的地址
    2. 左值可用在赋值运算符的左侧,也就叫左值(但是也同样可以放在赋值运算符得右侧)

    但是由于 C 的某次新标准加入了 const 关键字,导致有时会不满足第二条规则,因此左值又根据第二条规则分为了“可修改左值”和“不可修改左值”(后者只能放在赋值符号的右边)。

    也就是说,根据第一条判断是否为左值,第二条判断左值是否可以被修改。

    2.2.右值

    右值:是可以赋值给可修改左值的量,且本身不能是左值。右值只能放在右边,也就叫右值。右值无法被赋值,因此不可能在赋值符号的左边。

    补充:我们举几个例子来判断左右值

    int ex;		//创建左值(可修改),已经关联上某个特定内存
    int why;	//创建左值(可修改),已经关联上某个特定内存
    int zee;	//创建左值(可修改),已经关联上某个特定内存
    const int TWO = 2;  	//创建出左值(不可修改)
    why = 42;			   //将右值 42 赋值给左值(可修改)
    zee = why;			   //将左值赋给左值
    ex = TWO * (why + zee); //(why + zee) 整体是一个右值,不指定某个特定内存,也不能直接给其赋值,该式只是程序计算出来的临时值,计算完后就会被丢弃
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    因此左值和右值不能根据其位置是左还是右来简单认定,实际上这两个术语很容易被人所误会。

  • 相关阅读:
    ElasticSearch导入PDF,WORD到ES进行全文检索,全文高亮等操作。
    【研发日记】,Matlab/Simulink开箱报告(十)——Requirements Toolbox
    数理统计笔记10:回归分析
    从像素到洞见:图像分类技术的全方位解读
    【C++】class的设计与使用(一)实现一个class
    图纸识别自动生成BOM清单的方法
    兆骑科创创投平台,创赛承办,投融资对接,项目落地孵化
    flex的用法 代码6
    软考76-上午题-【面向对象技术3-设计模式】-创建型设计模式01
    JavaScript公共组件父子依赖调用及子校验父条件问题解决
  • 原文地址:https://blog.csdn.net/m0_73168361/article/details/134485723
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号