<<<零基础C++速成>>>

 hello,大家好,又见面了

首先,让我们再次回顾一下上节的内容

#include<iostream>   //预处理指令
using namespace std;   //引用命名空间
int main()      //主函数
{    
    int a=1,b=1;
    cout<<++a<<endl;   //先自增,即输出结果为 2
    cout<<--b<<endl;   //先自减,即输出结果为 0

    int i=1,j=1;
    cout<<i++<<endl;   //先输出i的初始值,再自增。即这句输出结果为 1
    cout<<j--<<endl;   //先输出j的初始值,再自减。即这句输出结果为 1
    cout<<i<<endl;   //i为自增后的值,即输出为 2
    cout<<j<<endl;   //j为自减后的值,即输出为 0
    return 0;
}

目录

1.4.4 关系表达式和逻辑表达式

1.4.5 条件表达式

1.4.6 位运算

(1)按位与(&)

(2)按位或(|)

(3)按位异或(^)

(4)按位取反(~)

1.4.7 运算符的优先级

1.4.8 强制类型转换

(1)表达式中的隐含转换



另外,在这里给大家补充一个应该注意的一点

注意,注意,注意!!!

cout<<……<<……<<……<<endl;

cout的输出顺序是从左向右的,但是!但是计算顺序是从右向左的,

什么意思呢?让我们具体看一个例子

#include<iostream>   //预处理指令
using namespace std;   //引用命名空间
int main()      //主函数
{    
    int i=3,j=4;
    cout<<i<<" "<<i++<<endl;   //先进行从右向左计算i++,再从左向右输出
    cout<<j<<" "<<j--<<endl;  
    return 0;
}

​/*
输出结果为:
4 3
3 4

具体再来看个图

总结十四个字:先从左向右计算,再从右向左输出!!!

这是个易错点,大家一定要记住。

好了,接下来让我们继续下面的内容

1.4.4 关系表达式和逻辑表达式

关系运算符,就是那些比较关系的,由这些关系运算符构成的式子即关系表达式

名称 符号 优先级
大于 > 较高(相同)
小于 <
小于等于 <=
大于等于 >=
等于 == 较低(相同)
不等于 !=

注意:“==”是两个连等号,不要误写成“=”

再给大家看一下逻辑运算符

符号 名称 优先级
1
&& 2
|| 3

非就是不的意思,就像前面的比较运算符(!=)非等于,就是不等于

与就是and的意思,只有当两个都是true才返回true,否则都是false

或就是,两者中一个满足即可,只要有一个true返回true。

相信大家在数学里都知道这些,就不在详细介绍了。

1.4.5 条件表达式

大家还记得前面的一元运算符,二元运算符吗?,不记得的话,快回去看看吧

接下来,为大家介绍C++中的唯一一个!!!——  三元运算符(?:)

<条件表达式> ?<表达式1> :<表达式2>

运算规则是怎样的呢

举个简单的例子

#include<iostream>   //预处理指令
using namespace std;   //引用命名空间
int main()      //主函数
{
    int i = 3, j = 4,a;
    a = i > j ? j : i;    //如果i>j为真,则返回冒号前面的,即j;
                          //如果i>j为假,则返回冒号后面的,即i。
    cout<<a<<endl;        //输出结果为 4
}

意思就是

如果问好前面的条件如果为真,则返回冒号前面的,

如果问号后面的条件为假,则返回冒号后面的

1.4.6 位运算

这里不详细介绍,用具体的例子说明即可。

(1)按位与(&)

 与,即两个为1返回1,否则为0

(2)按位或(|)

或,即只要有一个1就返回1

(3)按位异或(^)

异或,即相同返回0,不同返回1

(4)按位取反(~)

0变1,1变0 

1.4.7 运算符的优先级

优先级 运算符 结合性
1 [ ] () . - > 后置--  后置-- 从左到右
2 前置++ 前置-- sizeof & * + - ~ ! 从右到左
3 强制转化类型 从右到左
4 * / % 从左到右
5 << >> 从左到右
6 < > <= >=  从左到右
7 ==  != 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ?: 从右到左
14 = *= /= %= += -= <<= >>= &= ^= |= 从右到左
15 ,(逗号) 从左到右

1.4.8 强制类型转换

规则如下

<类型标识符>(表达式)或者(类型标识符)<表达式>

强制类型转换的作用是将<表达式结果的类型>转换为(类型标识符)所指定的类型。

cout<<7 %(int)2.5;  //将2.5强制转换成int型2,等价于7%2

(1)表达式中的隐含转换

在二元运算中,要求两个操作数的类型一致,如果参加运算的操作数类型不一致,则系统将自动对数据的类型进行转换,即,隐含转换,具体规则是

低类型数据转换为高类型数据

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>