C++运算符

2

C++运算符

  在前面已经介绍了C++的由来,这里主要介绍C++的运算符,包括赋值运算符,算术运算符,关系运算符,逻辑运算符,三目运算符。

C++创建变量

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
#include <iostream>
using namespace std;

int main() {
// C++中的变量创建时必须写清楚数据类型,也可以先定义,然后在其他地方赋初始值
short s = 1;
int i = 20;
long l = 300;
long long ll = 4000L;
char c = 'A';
float f = 3.14f;
double d = 1.234567;
bool b;
b = true

// 可以用sizeof(obj) 查看创建的变量大小,typeid(obj).name()可以查看变量的类型
cout << "s=" << s << " 类型为" << typeid(s).name() << " 所占内存大小为" << sizeof(s) << endl;
cout << "i=" << i << " 类型为" << typeid(i).name() << " 所占内存大小为" << sizeof(i) << endl;
cout << "l=" << l << " 类型为" << typeid(l).name() << " 所占内存大小为" << sizeof(l) << endl;
cout << "ll=" << ll << " 类型为" << typeid(ll).name() << " 所占内存大小为" << sizeof(ll) << endl;
cout << "c=" << c << " 类型为" << typeid(c).name() << " 所占内存大小为" << sizeof(c) << endl;
cout << "f=" << f << " 类型为" << typeid(f).name() << " 所占内存大小为" << sizeof(f) << endl;
cout << "d=" << d << " 类型为" << typeid(d).name() << " 所占内存大小为" << sizeof(d) << endl;
cout << "b=" << b << " 类型为" << typeid(b).name() << " 所占内存大小为" << sizeof(b) << endl;

return 0;
}

1

C++算术运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;

int main() {
// +(加),-(减),*(乘),/(除),%(求余),整数除法结果只能得到整数,注意字符型和布尔型也可以参与运算,字符型的值为ASCII码对应的值,布尔型的true代表1,false代表0
//进行计算时要注意数据的范围,以及低范围和高范围数据类型进行运算时,数据会发生自动类型转换到高范围,高范围数据向低范围数据要强制类型转换
int a = 2;
long l = 999;
char c = 'A';
bool b = false;
double d = 3.14159;

cout << "a + c =" << a + c << endl;
cout << "a * b =" << a * b << endl;
cout << "l / a =" << l / a << endl;
cout << "l % a =" << l % a << endl;
cout << "a * a * d =" << a * a * d << endl;
cout << "a * a * d =" << (int)(a * a * d) << endl;

return 0;
}

2

C++关系运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

int main() {
// >(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)
int a = 99;
int b = 'b';
char c = 'c';
bool d = a == c;
bool e = b > c;

cout << "99是否等于c? " << d << endl;
cout << "b是否大于c " << e << endl;

return 0;
}

4

C++自增自减运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;

int main() {
// ++(自增运算符),--(自减运算符),++在前代表先进行加1,然后将值代入表达式,++在后代表先将值代入表达式,然后再进行加1,自减操作符同理。
int a = 1;

cout << a << " 此时a=1" << endl;
cout << a++ << " ++在后,先打印a=1,然后a=a+1" << endl;
cout << a << " 此时a=2" << endl;
cout << ++a << " ++在前,先计算a=a+1,然后再打印a=3" << endl;
cout << a << " 此时a=3" << endl;

cout << a-- << " --在后,先打印a=3,然后a=a-1" << endl;
cout << a << " 此时a=2" << endl;;
cout << --a << " --在前,先计算a=a-1,然后再打印a=1" << endl;
cout << a << " 此时a=1" << endl;

return 0;
}

5

C++逻辑运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;

int main() {
// &&(与),||(或),!(非),注意与或操作只要可以判断出最后结果则停止,具有短路效果。
//如果与操作的第一个条件为假,则不执行第二个条件,如果或操作的第一个条件为真,则不执行第二个条件。
int a = 5;
int b = 6;
int c = 7;
int i = 0;
bool d = a > b || ++i; //此时或操作的第一个表达式为假,需要执行++i,因此i=1
cout << "i = " << i << endl;
cout << "d = " << d << endl;
bool e = a > b && ++i; //此时与操作的第一个表达式为假,不需要执行++i,因此i=1
cout << "i = " << i << endl;
cout << "e = " << e << endl;
bool f = !d;
cout << "f = " << f << endl;

return 0;
}

6

C++三目运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;

int main() {
// 条件?表达式1:表达式2,当条件成立时,执行表达式1的内容,否则执行表达式2的内容。
int a = 5 > 3 ? 2 : 1; // 5 > 3成立,因此a = 2
cout << a << endl;
int b = ++a >= a++ ? ++a : a++; // ++a中a的值先计算为3,再赋值为a,a++中a的值为3,此时++a >= a++等价于3 >= 3成立,当条件判断结束后,a又自增一次,变为4,然后b = ++a,a先自增为5,并且赋值给b
cout << a << endl;
cout << b << endl;

return 0;
}

7

C++小结

  运算符操作每种语言都大同小异,因为运算符是所有语言的基础,学习每一种语言都离不开运算操作,虽然难度较小,但是非常重要,无论以后从事什么样的研究,都是必不可少的,因此需要熟练掌握。

-------------本文结束感谢您的阅读-------------
0%