[C++][基础]2_表达式

简介: [C++][基础]2_表达式 2.1   算术操作符   2.2   关系操作符和逻辑操作符   2.3   位操作符   2.4   赋值操作符   2.5   自增、自减操作符   2.6   箭头操作符   2.7   条件操作符   Eg:   int i =10, j = 20;   int max = (i > j)  ? i : j;   2.8   sizeof操作符 sizeof其作用就是返回一个对象或者类型所占的内存字节数, 其返回值类型为size_t。

[C++][基础]2_表达式

2.1   算术操作符

 

2.2   关系操作符和逻辑操作符

 

2.3   位操作符

 

2.4   赋值操作符

 

2.5   自增、自减操作符

 

2.6   箭头操作符

 

2.7   条件操作符

  Eg:

  int i =10, j = 20;

  int max = (i > j)  ? i : j;

 

2.8   sizeof操作符

sizeof其作用就是返回一个对象或者类型所占的内存字节数, 其返回值类型为size_t

 

2.9   逗号操作符

         逗号表达式是一组由逗号分隔的表达式,这些表达式从左向右计算,但返回的结果是其最右边表达式的值。

Eg:

int i = (2+1, 3+2, 5*3);

     cout << i << endl;

 

2.10 复合表达式的求值

 

2.11 newdelete表达式

 

2.12 类型转换

2.12.1       何时发生隐式转换

  在混合类型的表达式中,用作条件的表达式被转换为bool类型

  用一个表达式初始化某个变量,或将某一个表达式赋值给某个变量,则表达式被转换为该变量的类型。

  Eg:

  int ival = 3.14;   //3.14转为整数

  int *ip;

  ip = 0;                //0转为指针

 

2.12.2       算术转换

  在算术表达式中,会将操作数类型转为表达式中的最大类型。

 

2.12.3       强制转换

强制类型转换符

dynamic_cast

dynamic_cast支持运行时识别指针或引用所指向的对象。

与其他强制类型转换不同,dynamic_cast涉及运行时类型检查。

若绑定到指针或引用的对象不是目标类型对象,失败!若是转换到指针失败,则dynamic_cast结果是0值,若是转换到引用失败,则抛出一个bad_cast异常。

const_cast

const_cast转换掉表达式的const性质。

static_cast

  编译器隐式执行的任何类型转换都可以由static_cast显示完成。

reinterpret_cast

reinterpret_cast通常为操作数的位模式提供较低层次的重新解释。

转换形式cast_type<convert_type>(expression);

Eg:

  const char* p = "hello";

  const_cast<char*>(p);

目录
相关文章
|
7月前
|
Python
使用 if...elif...else 语句判断数字是
使用 if...elif...else 语句判断数字是
|
4月前
错误: -source 1.7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)
错误: -source 1.7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)
53 0
|
5月前
|
语音技术
语音识别,print(“Hello“,end=‘‘)不换行的写法,\t代表着tab,print(“H\tW“),for循环的基础语法,把字符串遍历的写法,数itheima is有几个a
语音识别,print(“Hello“,end=‘‘)不换行的写法,\t代表着tab,print(“H\tW“),for循环的基础语法,把字符串遍历的写法,数itheima is有几个a
|
7月前
|
前端开发
简化 if true...else 条件表达式
简化 if true...else 条件表达式
下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。
下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。
|
JSON 程序员 数据格式
优雅地处理Python中的条件分支:字典映射、函数组合与match-case语句
在本文中,我们探讨了如何在Python中优雅地处理条件分支,以避免使用过多的if语句。文章介绍了两种解决方案:字典映射与函数组合以及Python 3.10中引入的match-case语句。这些方法使得代码结构更加清晰、简洁且易于维护和扩展。
129 0
-source 1.6 中不支持 lambda 表达式 [ERROR] (请使用 -source 8 或更高版本以启用 lambda 表达式)
-source 1.6 中不支持 lambda 表达式 [ERROR] (请使用 -source 8 或更高版本以启用 lambda 表达式)
217 0