12 C++ - 三目运算符功能增强(比较C语言)

简介: 12 C++ - 三目运算符功能增强(比较C语言)

c语言三目运算表达式返回值为数据值,为右值,不能赋值。

int a = 10;
  int b = 20;
  printf("ret:%d\n", a > b ? a : b);
  //思考一个问题,(a > b ? a : b) 三目运算表达式返回的是什么?
  //(a > b ? a : b) = 100;
  //返回的是右值

c++语言三目运算表达式返回值为变量本身(引用),为左值,可以赋值。

int a = 10;
  int b = 20;
  printf("ret:%d\n", a > b ? a : b);
  //思考一个问题,(a > b ? a : b) 三目运算表达式返回的是什么?
  cout << "b:" << b << endl;
  //返回的是左值,变量的引用
  (a > b ? a : b) = 100;//返回的是左值,变量的引用
  cout << "b:" << b << endl;

输出:

左值和右值概念:

  • 在c++中可以放在赋值操作符左边的是左值,可以放到赋值操作符右面的是右值。
  • 有些变量即可以当左值,也可以当右值。
  • 左值为Lvalue,L代表Location,表示内存可以寻址,可以赋值。
  • 右值为Rvalue,R代表Read,就是可以知道它的值。
  • 比如:int temp = 10; temp在内存中有地址,10没有,但是可以Read到它的值。
目录
相关文章
|
存储 C语言 C++
【c语言】运算符汇总(万字解析)
今天博主跟大家分享了c语言中各种操作符的功能、使用方法以及优先级和结合性,并且与大家深入探讨了表达式求值的两个重要规则--算数转换和整形提升。学习这些知识对我们的C语言和C++学习都有着极大的帮助。
1140 2
|
9月前
|
安全 C语言 C++
比较C++的内存分配与管理方式new/delete与C语言中的malloc/realloc/calloc/free。
在实用性方面,C++的内存管理方式提供了面向对象的特性,它是处理构造和析构、需要类型安全和异常处理的首选方案。而C语言的内存管理函数适用于简单的内存分配,例如分配原始内存块或复杂性较低的数据结构,没有构造和析构的要求。当从C迁移到C++,或在C++中使用C代码时,了解两种内存管理方式的差异非常重要。
307 26
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
311 2
|
存储 C++ UED
【实战指南】4步实现C++插件化编程,轻松实现功能定制与扩展
本文介绍了如何通过四步实现C++插件化编程,实现功能定制与扩展。主要内容包括引言、概述、需求分析、设计方案、详细设计、验证和总结。通过动态加载功能模块,实现软件的高度灵活性和可扩展性,支持快速定制和市场变化响应。具体步骤涉及配置文件构建、模块编译、动态库入口实现和主程序加载。验证部分展示了模块加载成功的日志和配置信息。总结中强调了插件化编程的优势及其在多个方面的应用。
1445 169
|
人工智能 Java 程序员
一文彻底搞清楚C语言的运算符
本文详细介绍了C语言中的各类运算符,包括算术、关系、逻辑、位运算符、赋值、三目运算符及sizeof,帮助读者深入理解其用法与特性。君志所向,一往无前,希望在成长的路上有你相伴!
1517 2
一文彻底搞清楚C语言的运算符
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
380 5
|
算法 网络协议 数据挖掘
C++是一种功能强大的编程语言,
C++是一种功能强大的编程语言,
334 14
|
C语言
【C语言】条件运算符详解 - 《 A ? B : C 》
条件运算符(也称为三元运算符)是C语言中唯一的三元运算符。它通常用于替代简单的 `if-else` 语句。
1384 6
|
C语言
c语言运算符
C的运算符有以下几种: 算术运算符:+、-、*、/、% 结合方向自左向右 关系运算符:>、<、==、>=、<=、!= 逻辑运算符:!、&&、|| 位运算符<<、>>、~、|、^、& 赋值运算符:=及符号扩展赋值运算符(+=、-=、*=、/=) 条件运算符:? : 逗号运算符:, 指针运算符:*、& 求字节运算符:sizeof 强制类型转换运算符:((类型)) 分量运算符:.、-> 下标运算符:[]
230 4
|
C语言 C++
C 语言的关键字 static 和 C++ 的关键字 static 有什么区别
在C语言中,`static`关键字主要用于变量声明,使得该变量的作用域被限制在其被声明的函数内部,且在整个程序运行期间保留其值。而在C++中,除了继承了C的特性外,`static`还可以用于类成员,使该成员被所有类实例共享,同时在类外进行初始化。这使得C++中的`static`具有更广泛的应用场景,不仅限于控制变量的作用域和生存期。
417 10