首页 > 编程语言 >C++primer第四章表达式

C++primer第四章表达式

时间:2023-04-08 14:55:24浏览次数:44  
标签:优先级 对象 C++ 运算符 求值 4.1 primer 表达式

4.1  基础

4.1.1  基本概念

  当一个对象作为右值时,用的是对象的值。当一个对象作为左值时,用的是对象的身份(在内存中的位置)。

  如果表达式的求值结果是左值,decltype作用于该表达式得到一个引用类型。

4.1.2  优先级与结合律

  括号优先级比较高。在第四章结尾处附上了一张表,组的位置越靠前组内运算符优先级越高。

4.1.3  求值顺序

  这里讲的比较模糊,我认为C++为了效率,在求值顺序上留下了很多编译器自主发挥的空间,但是我们只需注意一条,当不会改变同一对象的状态也不执行IO任务时,函数的调用顺序不受限制。

 4.2  算术运算符

  当计算的结果超出类型所能表示的范围就会产生溢出。

  参与取余运算的对象必须是整数类型。m%n的符号和m匹配。

4.3  逻辑和关系运算符

  对于这两种运算符而言,运算对象和求值结果都是右值。

  逻辑与运算符和逻辑或运算符都是短路求值(即当且仅当左侧运算对象无法确定表达式结果时才会对右侧运算对象进行运算)。

4.4  赋值运算符

  赋值运算符的左侧对象必须是一个可修改的左值。当两侧对象类型不一致时,右侧对象将转换为左侧对象的类型。

4.5  递增和递减运算符

  前置递增运算符将改变后的对象作为求值结果。

  后置递增运算符将对象原始值的副本作为求值结果。

4.6  成员访问运算符

  解引用的优先级比点运算符的优先级低。

4.7  条件运算符

  条件运算符表达式:

          cond?expr1:expr2

  允许在条件运算符的内部嵌套另外一个条件运算符。

4.8  位运算符

  没看懂

4.9  sizeof运算符

  表达一个类型所占字节数,所得的值是一个size_t类型,需要注意到它的优先级。另外它可以直接对数组求大小,并且不会把数组名转换为指针。

4.10  逗号运算符

  简单介绍了一下逗号运算符。

 

标签:优先级,对象,C++,运算符,求值,4.1,primer,表达式
From: https://www.cnblogs.com/gp2000/p/17294141.html

相关文章

  • 判断字符串是不是正则表达式
    :rules="[{required:true,trigger:'blur',validator:this.checkCanonical},]"checkCanonical(rule,value,callback){if(value){letisReg=truetry{isReg=eval(......
  • 2023年蓝桥杯软件类省赛 C/C++ B组 解析
    还有一题忘了题意是什么了,等拿到题面了再更中间的题目顺序也忘了,填空题的数据也暂时还没有,暂时只有简单的思路,包括后面大题数据范围和是否多组都有点记不清A将题面序列处理成数组放代码里直接枚举八个位置的\(O(n^8)\)复杂度对于\(n=100\)的范围显然本地跑也跑不出来但由......
  • CMU_15_445_project_0_C++_Primer
    CMU15_445project_0C++Primertask1Copy-On-WriteTrieGetGet比较简单,遍历字符串和trie,找得到就返回值,找不到就返回nullptr.Put每个树有一个没有value的根节点,节点的类型分为TrieNode类和TrieNodeWithValue类,TrieNode是基类不存value,TrieNodeWithValue类继......
  • C++笔记(一)
    C++笔记(一)反复考量之后,还是决定将C++作为我的第二语言以及以后的主力开发语言。目录C++笔记(一)语法基础基本数据类型变量、常量作用域基本运算补码字节序基本结构顺序结构分支结构循环结构指针内存空间动态分配内存二级指针空指针野指针函数指针常见容器类型数组语法基础基本数......
  • C++竞赛常用函数库stl快捷查询手册(vector,map,set,queue,string等)
    1.控制输出流<iomanip>;cout<<setprecision(<span="">int);保留int位有效数字cout<<setprecision(<span="">int)<<fixed;保留int位有效小数为不足4位数的数填充0(如1填充变成0001),cout<<setfill('0')<<setw(4)(一次性效果)......
  • 回调函数 C++
    回调函数(CallbackFunction)是一种常见的编程模式,它是一段可以被传递给其他函数的代码,可以在特定的条件满足时被调用执行。回调函数通常作为参数传递给其他函数,以便在某些事件发生时执行。在C++中,回调函数通常是一个指向函数的指针,它可以作为参数传递给其他函数,这些函数可以在需要......
  • C/C++模拟ATM机存取款管理系统[2023-04-07]
    C/C++模拟ATM机存取款管理系统[2023-04-07]2、模拟ATM机存取款管理系统模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额、取款修改密码、退出系统等功能。(一)功能要求及说明:(1)将银行账户的卡号,户名,密码和账户余额从外部文件(银行账户.txt)中读入......
  • java -- Math、BigInteger、BigDecimal类和基本类型的包装类、正则表达式
    Mathjava.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。Math.PI//静态常量publicstaticfinaldoublePI=3.14159265358979323846;abs//返回参数的绝对......
  • 什么是虚拟函数 —— C++ 开发人员应该如何充分利用它?
    什么是虚拟函数?虚拟函数是基类中声明的成员函数,且使用者期望在派生类中将其重新定义。那么,在C++中,什么是虚拟函数呢?在C++中,通常将虚拟函数用于实现运行时多态,该特性由C++提供,适用于面向对象编程。我们将在下文更为详细地讨论运行时多态。不论函数调用所使用的指针或引用类型......
  • Java 判断是否是数字 正则表达式
    privatestaticbooleanisInteger(Stringstr){//可以包含小数Patternpattern=Pattern.compile("^[0-9]+(.[0-9]+)?$");//只包含两位小数Patternpattern=Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$");......