C++入门教程之五:运算符(上)
2021/5/16 14:55:09
本文主要是介绍C++入门教程之五:运算符(上),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C++入门教程之五:运算符(上)
运算符是C++的精华之一,是程序设计中最重要的一环之一,也是理解一个程序的关键。许多人倒在了运算符的学习中(也有人倒在了指针上),因此,学会C++的运算符是学习C++的关键所在。下面我将逐一介绍C++的运算符
算术运算符
算术运算符是最基本的运算符,包括小学我们就学过的+、-、×、÷和取余。
a+b;//加 a-b;//减 a*b;//乘 a/b;//除 a%b;//取余
没错,用法就是这么简单。
唯一值得讲一下的是取余。如a%b
,小学我们学过,a÷b=c……d,则有a%b=d,读作“a模b等于d”。如果a或者b不是整数类型,则程序在编译的时候,会先将a和b向下取整为整数再进行运算,如果没法取整,则会报错。
此外还有自加运算符++
和自减运算符--
,用法如下
a++; ++a; a--; --a;
其中前两个表示把a的值加1,后两个表示把a的值减1。一般来说,前两个表达式差别不大,你想用哪个用哪个。但是,它们还是有区别的。假设有下面一个程序:
int x=3; cout << (x++)+(++x) << endl;
输出:
8
具体过程是这样的:首先x被赋值为3。第二行中先运行x++,x的值先放到了表达式中,然后再加1,也就是说,运算完x++后,x的值被加了1,变成4,但是表达式变成3+(++x)
,然后,运行++x
,它的作用与x+1
完全一样,先将x的值加1,变为5,再将5放到表达式中,整个表达式变为3+5
,即8。
--
运算符与++
运算符相同,只不过加1变成了减1。给大家出一道题,大家可以在评论区中打出答案:
int x=3; int y=4; cout << (x++)/3+(--y)*2-(x--)%6+(y++)*3-(y--) << endl;//求输出
关系运算符
关系运算符包括==、!=、>=、<=、<、>。
用法:
int a=1,b=2; if(a==b)cout << "a等于b" << endl; if(a!=b)cout << "a不等于b" << endl; if(a<=b)cout << "a小于等于b" << endl; if(a>=b)cout << "a大于等于b" << endl; if(a<b)cout << "a小于b" << endl; if(a>b)cout << "a大于b" << endl;
输出:
a不等于b a小于等于b a小于b
由此可知,关系运算符运算的是两个数字之间的关系,如果为真,则表达式的值为1,代表真;如果为假,则表达式的值为0,代表假。关系运算符通常用于控制语句中作为条件使用。
逻辑运算符
逻辑运算符包括||(逻辑或)、&&(逻辑与)、!(逻辑非)
基本用法如下:
bool a=true,b=false; cout << (a||b) << endl; cout << (a&&b) << endl; cout << (!a) << endl;
输出结果:
1 0 0
a或b意味着a和b中只要有一个是真的,那么整个表达式都是真的;a与b意味着a和b中只要有一个是假的,那么整个表达式都是假的。!a
意味着如果a为真,这表达式为假;如果a为假,则表达式为真。
a | b | a&&b |
a||b |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
注意:只有变量的值是0时,这个变量才会被认为是假的,否则都会被认为是真的。
赋值运算符
=
是C++中的赋值运算符。用法非常简单
a=1;
其中表示把1赋值给a。赋值运算符=表示把右边的值赋值给左边的变量。赋值的意思是:用要赋的值替换掉变量中原有的值。赋值有几点要求:首先,赋的值必须与变量的数据类型一样,比如:
int a; a="Hello"
就会报错。
第二点,=
的左边必须是变量,不能是常量。如
const int a=0; a=1;//错误 1=2;//错误
此外,还有一种赋值操作,即运算符=
,如a+=2
,等同于a=a+2
。如:
int a=1; cout << a+=1 << endl; cout << a-=3 << endl; cout << a/=-1 << endl; cout << a*=5 << endl; cout << a%=2 << endl;
输出:
2 -1 1 5 1
其他运算符
sizeof()
sizeof返回变量的字节数。比如
int a=1; cout << sizeof(a);
输出:
4
此外,还可以sizeof(数据类型)
,输出的是该数据类型的变量所占的字节数,如:
cout << sizeof(int) << endl; cout << sizeof(long long) << endl; cout << sizeof(float) << endl; cout << sizeof(double) << endl;
输出:
4 8 4 8
?:
有关这个运算符的知识,参见我之前的文章C++入门教程之三:控制语句
强制转换类型
用法是:
float a=1.5 cout << (int)a << endl;
输出:
1
强制转换类型可以将任意类型的值转换为括号内数据类型,但不会改变原变量的值。但是强制转换类型是有范围的,只能在(unsigned) int
, (unsigned) long
, (unsigned) long long
, (unsigned) float
, (unsigned) double
,bool
和char
类型之间转换。(char
类型在转换时会变成ASCII码)
,
用法如下:
int a=1; cout << a+=3,a++,a%3 << endl;
输出结果:
2
逗号运算符的意思是:执行一连串运算,其值为整个由逗号连接的列表中的最后一项的值。
此外,还有指针运算符和成员运算符,关于它们的知识将在后面讲到。
这篇关于C++入门教程之五:运算符(上)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26RocketMQ入门指南:搭建与使用全流程详解
- 2024-11-26RocketMQ入门教程:轻松搭建与使用指南
- 2024-11-26手写RocketMQ:从入门到实践的简单教程
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享