• c++:算术运算符、赋值运算符、比较运算符、逻辑运算符


    c++:算术运算符、赋值运算符、比较运算符、逻辑运算符

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
    我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
    提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
    而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,


    c++运算符

    在这里插入图片描述

    算术运算符:加减乘除

    取模a%b求余数
    ++递增
    –递减
    在这里插入图片描述
    整除,整数部分,不保留小数
    a/b保留整数部分

    在这里插入图片描述
    在这里插入图片描述
    除数b不能为0
    常识
    在这里插入图片描述
    俩小数能除吗
    可以double就行

    在这里插入图片描述

    #include
    using namespace std;
    
    
    //算术运算
    void calc1() {
    	int a = 10;
    	int b = 20;
    	cout << "a+b=" << a + b << endl;
    	cout << "a-b=" << a - b << endl;
    	cout << "a*b=" << a * b << endl;
    	cout << "a/b=" << a / b << endl;//整除,整数部分,不保留小数
    
    	//Python2也是这样,Python3就是有小数了
    	//java也是整除的
    
    	//俩小数
    	double d1 = 0.5;
    	double d2 = 0.25;
    	cout << "d1/d2=" << d1 / d2 << endl;//2不?
    	d2 = 0.2;
    	cout << "d1/d2=" << d1 / d2 << endl;//2不?
    
    	//你想看余数就%,这通用的
    	cout << "5%3=" << 5 % 3 << endl;//取余
    }
    
    int main() {
    
    	calc1();//算术运算
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    取模运算%,取余数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    void yushu() {
    	//
    	int a = 10;
    	int b = 3;
    	cout << a % b << endl;
    
    	int a2 = 10;
    	int b2 = 20;
    	cout << a2 % b2 << endl;
    }
    
    int main() {
    
    	//calc1();//算术运算
    	yushu();//算术运算
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    老样子,除数不可为0

    否则程序就会炸

    double是不可以取模的哦

    在这里插入图片描述

    递增++,递减–

    前置:先操作,让变量加1,再进行赋值操作
    在这里插入图片描述

    后置,先玩表达式赋值操作,后再进行+1的操作【经常在数据结构与算法中用的,典型的用处就是归并排序】
    在这里插入图片描述

    
    void dizengdijian() {
    
    	//前置,和后置--区别是啥呢??
    	int a = 10;
    	int a2 = ++a;//让a先加1,这叫前置
    	cout << a2 << endl;
    	cout << a << endl;
    
    
    	int b = 10;
    	int c = b++;//先玩表达式,再执行加1操作,这叫后置
    	cout << c << endl;
    	cout << b << endl;
    
    }
    
    int main() {
    
    	//calc1();//算术运算
    	//yushu();//算术运算
    	dizengdijian();//算术运算
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    赋值运算符

    在这里插入图片描述
    a += x
    等价于
    a = a + x
    其余的加减乘除,取模啥的都一样

    在这里插入图片描述

    void fuzhi() {
    	int a = 10;
    	a = 100;//常规赋值
    	cout << a << endl;
    
    	a = 10;
    	a += 2;//a=a+2,简写了而已
    	cout << a << endl;
    
    	a = 10;
    	a -= 2;//a=a-2,简写了而已
    	cout << a << endl;
    
    	a = 10;
    	a *= 2;//a=a*2,简写了而已
    	cout << a << endl;
    
    	a = 10;
    	a /= 2;//a=a/2,简写了而已
    	cout << a << endl;
    
    	a = 10;
    	a %= 2;//a=a%2,简写了而已
    	cout << a << endl;
    }
    
    int main() {
    
    	//calc1();//算术运算
    	//yushu();//算术运算
    	//dizengdijian();//算术运算
    	fuzhi();//算术运算
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    比较运算符

    在这里插入图片描述
    =是赋值操作
    ==判断相等的操作

    在这里插入图片描述
    注意这里运算符的优先级,后续我们还会讲
    现在你需要知道
    比较运算的优先级是低于算术运算符的
    ()的与优先级最高的

    void compare1() {
    	//true 1;false 0
    
    	int a = 10;
    	int b = 20;
    	cout << (a == b) << endl;//优先级,比较运算是低于算术运算符的
    	cout << (a != b) << endl;//优先级,比较运算是低于算术运算符的
    	cout << (a > b) << endl;//优先级,比较运算是低于算术运算符的
    	cout << (a < b) << endl;//优先级,比较运算是低于算术运算符的
    	cout << (a <= b) << endl;//优先级,比较运算是低于算术运算符的
    	cout << (a >= b) << endl;//优先级,比较运算是低于算术运算符的
    
    
    }
    
    int main() {
    
    	//calc1();//算术运算
    	//yushu();//算术运算
    	//dizengdijian();//算术运算
    	//fuzhi();//算术运算
    	compare1();//算术运算
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    逻辑运算符

    在这里插入图片描述
    你得清楚逻辑运算的计算速度远高于算术运算符
    有时候经常用这种操作【加速运算】

    逻辑与
    在这里插入图片描述
    在这里插入图片描述

    void luoji() {
    	int a = 10;//非0,就是1逻辑,真
    	cout << !a << endl;//这个优先级挺高啊,!比右移左移操作高
    	cout << !!a << endl;//取反操作
    
    	int b = 0;
    	cout << (a && b) << endl;
    	cout << (a || b) << endl;//这里优先级又不如取非了
    }
    
    int main() {
    
    	//calc1();//算术运算
    	//yushu();//算术运算
    	//dizengdijian();//算术运算
    	//fuzhi();//算术运算
    	//compare1();//算术运算
    	luoji();//算术运算
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    逻辑或
    在这里插入图片描述
    在这里插入图片描述

    void luoji() {
    	int a = 10;//非0,就是1逻辑,真
    	cout << !a << endl;//这个优先级挺高啊,!比右移左移操作高
    	cout << !!a << endl;//取反操作
    
    	cout << endl;
    	cout << (1 && 1) << endl;
    	cout << (1 && 0) << endl;
    	cout << (0 && 1) << endl;
    	cout << (0 && 0) << endl;//全1才1
    
    	cout << endl;
    	cout << (1 || 1) << endl;
    	cout << (1 || 0) << endl;
    	cout << (0 || 1) << endl;
    	cout << (0 || 0) << endl;//有1就1
    							 //这里优先级又不如取非了
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    总结

    提示:重要经验:

    1)各种操作,慢慢搞
    2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
    3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

  • 相关阅读:
    【面试题 - springcloud】 Hystrix
    【数据库与事务系列】多数据源切换
    13.< tag-动态规划和回文字串>lt.647. 回文子串 + lt.516.最长回文子序列
    C语言进阶——程序环境和预处理
    使用 Sprinkles 构建您自己的类型安全版本的 Tailwind CSS
    【数据库开发】DQL操作和多表设计
    素问·金匮真言论原文
    Python武器库开发-高级特性篇(八)
    Cpp多态机制的深入理解(20)
    保护数据安全:如何免受.kann勒索病毒的影响
  • 原文地址:https://blog.csdn.net/weixin_46838716/article/details/127100480