c++与c的基本类型的赋值表达式的返回值的区别

C++(03):operator=赋值运算符的返回值 C++中赋值运算符的返回值通常为this对象的引用: 之所以这样做,是因为原生类型,比如int型变量允许做这样的操作: 虽然我不太理解,( i = 8 ) = 0;这样操作的意义是什么,不过原生类型确实允许这样的操作。为了让自定义的类型也具备这样的能力,因此要让赋值运算符的返回值为this对象引用: 如果赋值运算符的返回值类型为this对象的常量引用,是无法完成(a1 = 8) = 0;这样的操作的: 注:Effective C++条款10,对赋值运算符的返回值类型之所以为this对象的引用 阅读详情

c++赋值表达式的返回值是赋值号左边的变量的引用,也就是表达式的结果(是一个左值)可以再次放在赋值表达的左边,
而c语言返回的是表达式的值(是一个右值),也就是不可以再次放在赋值表达式左边。
例如:
int a=1, b=2, c=3;
(a=b)=c;
在c++中经过上述运算a=3, b=2, c=3,
而c语言中则会报错(赋值号左边不是左值)。
c++中首先先将进行括号内的运算:将b赋值给a,然后返回括号内的表达式的结果也就是变量a的引用,最后再将c赋值给a;
而在c语言中上述行为会报错,因为c语言赋值表达式的返回值是一个值不是一个变量(是一个右值);
在上述表达式中c语言也会先计算括号内的a=b,但它的返回值是2而不是变量a,所以在执行最后的2=c会报错。
————————————————
版权声明:本文为优快云博主「危!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/m0_73797951/article/details/129614054

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接 目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC 阅读详情

相关推荐

【PCIe DL_Feature详解】

   Data Link Control and Management State Machine在PCIe Gen4引入了DL_Feature这个状态,该状态主要用来协商PCIe link 两端是否支持新的DL Feature,目前为止DL Feature只引入了Scaled Flow Control 来提高Gen4及以上的效率。   DL_Feature 这个状态是可选的,当 Data Link Feature Extended Capability中Data Link Feature Exchang

sinat_38294441的博客 3232

`计算机知识` `C++` 逗号表达式,括号表达式

1

WChang的博客 1001

Transformer是什么?看完这篇你就醍醐灌顶

前言 由谷歌团队提出的预训练语言模型BERT近年来正在各大自然语言处理任务中屠榜(话说学者们也挺有意思的,模型名都强行凑个芝麻街的人物名,哈哈哈)。 BERT算法的最重要的部分便是Transformer的概念,它本质上是Transformer的编码器部分。 而Transformer是什么呢?transformer是永远的神,自从transformer使用了抛弃rnncnn的纯attention机制之后,各种基于transformer结构的预训练模型都如雨后春笋般雄起,而transformer中最重要就是使用

fs1341825137的博客 6万+

C++系列七:表达式

表达式是计算机编程语言中的基本构造块之一,它由运算符和操作数组成,用于执行各种算术和逻辑运算以及计算变量的值。本文章深入探讨了C++中的表达式,并介绍其不同类型、优先级和计算顺序等方面的知识。

聚集机器学习、信息安全 4247

Windows MCP 安装教程:让 AI 代理与 Windows 系统无缝交互

通过以上步骤,你已经成功安装和配置了 Windows MCP 服务。现在你的 Cursor 编辑器可以通过 MCP 协议与 Windows 系统进行深度交互,AI 代理能够:启动和控制应用程序执行系统命令自动化 UI 操作获取系统状态信息这为 AI 辅助开发和工作流程自动化提供了强大的基础。如果你在使用过程中遇到任何问题,欢迎在评论区讨论或查看项目的官方文档。

chenchihwen的专栏 3349

用python自动复制粘贴excel表里某一列的数据到另一个表中

昨天接到人事小姐姐求助减轻复制粘贴的重复工作量,分享一下代码 半路新手上路 耶 把 2.xlsx 表里的第二列 的数据复制粘贴到 test.xlsx的第一列 python3.6.2 from openpyxl import Workbook from openpyxl import load_workbook from openpyxl.writer.excel import Exc...

weixin_33854644的博客 2万+

赋值表达式的返回值

赋值表达式的返回值 转载自https://blog.youkuaiyun.com/Code_Mart/article/details/53212238 赋值表达式的返回值是 表达式左值的引用。 #include <stdio.h> int main() { int a = 1; printf("%d, %d, a = %d\n", (a*=2), (a+=3), a); ...

一叶知秋的博客 5074

56、Cortex - M33处理器浮点单元(FPU)的使用与优化

本文详细介绍了Cortex-M33处理器浮点单元(FPU)的使用与优化方法,涵盖单双精度浮点计算的选择、编译器命令行配置、ABI模式对比、特殊FPU模式设置(如Flush-to-Zero、Default NaN)、浮点异常处理机制以及FPU电源管理策略。结合代码示例和流程图,提供了在不同应用场景下的最佳实践建议,并总结了常见问题及解决方案,帮助开发者提升嵌入式系统中浮点运算的性能、精度与能效。

bread的博客 153

python中正确的赋值语句_python自增自减?赋值语句返回值?逗号表达式?

咳咳,直接进入正题吧。自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式。熟悉C/C++的小伙伴们都知道,在C/C++中:自增自减(前缀/后缀)运算符将实现对变量值的 加1/减1; 类似 x = 0; ++x;的语句会使最终 x 的值为1赋值语句将所赋的值作为该语句的返回值(值传递); 类似 (x = func()) > 0; 的语句会将函数 func(...

weixin_39573512的博客 2751

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

本文进行布线铺铜实战及详解布线铺铜的细节

嵌入式阿齐Archie 4万+

物联网竞赛单片机应用开发-项目汇总

物联网竞赛单片机应用开发-项目汇总

a6662580的博客 9003

python自增自减?赋值语句返回值?逗号表达式?

咳咳,直接进入正题吧。 自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式。 熟悉C/C++的小伙伴们都知道,在C/C++中: 自增自减(前缀/后缀)运算符将实现对变量值的 加1/减1; 类似 x = 0; ++x;的语句会使最终 x 的值为1 赋值语句将所赋的值作为该语句的返回值(值传递); 类似 (x = func()) &gt...

dong02084的专栏 1151

一文读懂 CST 时/频域求解器

本文系统介绍了CST Studio Suite中的关键网格技术——六面体网格、四面体网格以及TLM求解器专用的八叉树非均匀网格技术。重点阐述了六面体网格的三项核心技术:理想边界拟合(PBA)技术可精确处理曲面边界,薄片技术(TST)能高效模拟薄层结构,自适应八叉树网格实现计算资源最优分配。同时详细对比了六面体网格与四面体网格的特点及适用场景,前者适用于系统级EMC/EMI分析等时域问题,后者擅长处理复杂曲面和异质材料的频域问题。

一只豌豆象的博客 462

c++ 赋值操作符的返回值

赋值操作符的返回值 在进一步了解++a和a++的区别前,先来了解何谓操作符的计算(Evaluate)。操作符就是将给定的数字做一些处理,然后返回一个数字。而操作符的计算也就是执行操作符的处理,并返回值。前面已经知道,操作符是个符号,其一侧或两侧都可以接数字,也就是再接其他操作符,而又由于赋值操作符也属于一种操作符,因此操作符的执行顺序变得相当重要。 对于a + b + c,将先执行a ...

weixin_30830327的博客 531

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

c语言与c++语言的区别?和快速掌握基本语法

c语言与c++语言的区别?和快速掌握基本语法上手一、c语言和c++语言的区别二、快速掌握基本语法(一)c语言1.程序结构2.基本语法、数据类型、变量和常量、运算符3.结构(判断、循环、函数)4.数组、指针、字符串、结构体4.常用标准库(二)c++语言1.基本语法2.基本的输入输出 一、c语言和c++语言的区别 c语言是一种结构化程序设计语言,侧重于如何设计一个过程(输入运算到输出),强调算法和数据结构 c++语言是面向对象的语言,侧重于如何构造一个与描述问题相对应的对象模型,融入了抽象设计 二、快速掌握基本

展信佳,当你看到这段简介的时候,我“风吹海洋浪”已走马上任优快云博客平台。我来这只办一件事:致力于将模糊的概念清晰化,技术的语言通俗化,复杂的关系逻辑化,孤岛的知识碎片结构化,让我一心和技术大佬们共同进步,最重要的是!!!!!忘记【你】 1961

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C++11 lambda 表达式详解(带例题)

lambda表达式的出现主要是为了解决排序的问题。但我们在C++98中已经有了std::sort函数,为什么还要lambda表达式呢?上面是内置类型的用法,还是很方便的。但是如果待排序元素为自定义类型,需要用户定义排序时的比较规则,就比较复杂。随着C++语法的发展,每次为了实现一个algorithm算法,。因此,在C++11语法中出现了Lambda表达式。上面介绍了lambda表达式的由来,接下来我们仔细研究他的语法吧!

可涵的博客 1439

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python自减指令_python自增自减?赋值语句返回值?逗号表达式?

标签:链式条件strNPU第一个值传递可见多个优先咳咳,直接进入正题吧。自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式。熟悉C/C++的小伙伴们都知道,在C/C++中:自增自减(前缀/后缀)运算符将实现对变量值的 加1/减1; 类似 x = 0; ++x;的语句会使最终 x 的值为1赋值语句将所赋的值作为...

weixin_33303537的博客 1157

python逗号表达式_python自增自减?赋值语句返回值?逗号表达式?

咳咳,直接进入正题吧。自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式。熟悉C/C++的小伙伴们都知道,在C/C++中:自增自减(前缀/后缀)运算符将实现对变量值的 加1/减1; 类似 x = 0; ++x;的语句会使最终 x 的值为1赋值语句将所赋的值作为该语句的返回值(值传递); 类似 (x = func()) > 0; 的语句会将函数 fu...

weixin_33670640的博客 1744

C++11之常量表达式(const与constexpr的区别)

C++11标准要求,编译时的浮点数常量表达式的精度必须大于等于运行时的浮点数常量的精度(为了解决浮点数精度丢失问题)。当我们在添加了常量表达式构造函数后就必须要添加非常量表达式构造函数的版本,因为常量表达式构造函数也可用于非常量表达式中的类型构造。所以,在使用这个常量数值创建数组时编译失败,当作枚举成员赋值也编译失败,作为swicth中的case 分支也会编译错误。规定,当声明为常量表达式的模板后,某个该模板的实例化结果不满足常量表达式的要求后,是一个常量表达式,所以编译器进行编译时就会计算出函数的值。

林夕07 1842

在计算机语言中什么是赋值的意思,赋值语句的作用是出赋值号

简述c语言中赋值语句的作用和用法auto用于说明自动变量,通常不用;volatile(易变的)表示该变量不经过赋值,其值也可能被改变(例如表示时钟的变量、表示通信端口的变量等)。C语言32个关键字[code]auto :声明自动变量 一般不使用double :声明双精度变量或函数int: 声明整型变量或函数struct:声明结构体变量或函数break:跳出当前循环else :条件语句否定分支(与 ...

weixin_33489093的博客 3901

python 赋值表达式 加括号_python自增自减?赋值语句返回值?逗号表达式?

咳咳,直接进入正题吧。自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式。熟悉C/C++的小伙伴们都知道,在C/C++中:自增自减(前缀/后缀)运算符将实现对变量值的 加1/减1; 类似 x = 0; ++x;的语句会使最终 x 的值为1赋值语句将所赋的值作为该语句的返回值(值传递); 类似 (x = func()) > 0; 的语句会将函数 fu...

weixin_29858113的博客 636

【C++】lambda表达式

请注意,上述代码仅仅是为了讲解Lambda函数的形参列表的语法逻辑,而并不是Lambda函数的一般典型用法,因为上述例子已经违背了匿名函数的初衷—将Lambda函数赋值给了一个具名函数对象sum,这么做毫无意义,如果非要定义一个具名函数的话,那么完全可以直接编写一个普通的函数 sum 来达到此功能。那么,Lambda函数形参列表的典型场景是怎样的呢?Lambda匿名函数被设计为一种对象,这意味着可以将它们作为函数的参数、返回值,有时,那些使用了Lambda函数作为参数、返回值的函数,被称为高阶函数。

qq_62917398的博客 3668

自己曾经的C++笔记【在c盘爆满的时候找到的回忆】

正浮点数: ^ [1 - 9]\d * .\d * | 0.\d * [1 - 9]\d * $ 或 ^ (([0 - 9] + .[0 - 9] * [1 - 9][0 - 9] *) | ([0 - 9] * [1 - 9][0 - 9] * .[0 - 9] + ) | ([0 - 9] * [1 - 9][0 - 9]\d + )(.\d + )?Email地址: ^ \w + ([-+.]\w + ) * @\w + ([-.]\w + ) * .\w + ([-.]\w + ) * $

多方通行8的博客 3130

何为c语言表达式,何为语句与表达式,C语言中的语句与表达式有什么不同?

何为语句与表达式,C语言中的语句与表达式有什么不同?答案:1信息版本:手机版解决时间 2019-10-03 17:32已解决2019-10-03 03:57何为语句与表达式,C语言中的语句与表达式有什么不同?最佳答案2019-10-03 05:26表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量...

weixin_30774813的博客 2220

【C++学习】——(六)表达式

【C++学习】——(六)表达式 基础 定义:表达式由一到多个操作数组成,可以求值并通常会返回求值结果; 最基本表达式:变量、字面值,通常包含操作符; 操作符特性: 1、接收几个操作数:一元、二元、三元; 2、对类型有要求(可能涉及类型转换); 3、操作数是左值还是右值; 4、结果的类型; 5、结果是左值还是右值; 6、优先级与结合性,可用小括号来改变运算顺序; 7、 操作符重载:不改变接收操作数的个数、优先级与结合性; 注意:关于操作符优先级问题可以参考以下文档:https://en.cppre

weixin_40620310的博客 1373
上一篇: C++规定
下一篇: C++11-C++17新特性介绍
Computer_Tech
博客等级 码龄3年 573粉丝 49原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值