C++入门教程之五:运算符(上)

Posted zqqrx0546

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,boolchar类型之间转换。(char类型在转换时会变成ASCII码)

,

用法如下:

int a=1;
cout << a+=3,a++,a%3 << endl;

输出结果:

2

逗号运算符的意思是:执行一连串运算,其值为整个由逗号连接的列表中的最后一项的值。

此外,还有指针运算符和成员运算符,关于它们的知识将在后面讲到。

以上是关于C++入门教程之五:运算符(上)的主要内容,如果未能解决你的问题,请参考以下文章

C++| C++ 入门教程 运算符

python编程入门之五:元组

python编程入门之五:元组

Visual C++编程技巧之五

MongoDB最简单的入门教程之五-通过Restful API访问MongoDB

C++入门不能重载为友元函数的4个运算符(=, ->, [ ], ( ))