运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 杂项运算符
一、算术运算符
二、关系运算符
三、逻辑运算符
四、位运算符
位运算符作用于位,并逐位执行操作
假设如果 A = 60,且 B = 13,现在以二进制格式表示:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
五、赋值运算符
六、杂项运算符
sizeof
返回变量或数据类型的字节大小 ———— Size of int : 4
Condition ? X : Y
如果 Condition 为真 ? 则值为 X : 否则值为 Y
, 逗号运算符
会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值
.(点)和 ->(箭头)
用于引用类、结构和共用体的成员
Cast 强制转换
把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2
&指针运算符
返回变量的地址
*指针运算符
指向一个变量
七、运算符优先级
补充:
1.除法/和求模%若两个操作数是正数,则结果都是正数
若两个操作数是负数,则除法的结果是正数,求模的结果是负数
若只有一个操作数是负数,求模的结果取决于机器,除法可以确定结果是负数
2. “--> x” 在 x 的进行自减运算前,会先使用比较符号 > 与右边表达式 0 进行比较,然后返回结果再进行自减运算
循环
// while 循环执行 while( a < 20 ) { cout << "a 的值:" << a << endl; a++; } // for 循环执行 for( int a = 10; a < 20; a = a + 1 ) { cout << "a 的值:" << a << endl; } // 等效于while循环 for ( ;i<=100; ) { sum+=i; i++; } // do 循环执行 ———— 不断循环,直到条件为 假 do { cout << "a 的值:" << a << endl; a = a + 1; }while( a < 20 );
一、基于范围的for循环(C++11)
int my_array[5] = {1, 2, 3, 4, 5}; // 每个数组元素乘于 2 for (int &x : my_array) { x *= 2; cout << x << endl; } // auto 类型也是 C++11 新标准中的,用来自动获取变量的类型 for (auto &x : my_array) { x *= 2; cout << x << endl; }
":"之后的第二区块,代表将被迭代的范围
string str("some string"); //也可以遍历字符串 // range for 语句 for(auto &c : str) { c = toupper(c); }
二、无限循环
由于构成 for 循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环
for( ; ; ) { printf("This loop will run forever.\n"); }
三、循环控制语句
break;
continue;
goto语句
goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
不建议使用
但对于跳出深层嵌套 有很好的作用
for(...) { for(...) { while(...) { if(...) goto stop; . . . } } } stop: cout << "Error in program.\n";
判断
if( xxx ) { ... }else if ( xxx ){ ... }else{ ... }
switch
char grade = 'D'; switch(grade) { case 'A' : cout << "很棒!" << endl; break; case 'B' : case 'C' : cout << "做得好" << endl; break; case 'D' : cout << "您通过了" << endl; break; case 'F' : cout << "最好再试一下" << endl; break; default : cout << "无效的成绩" << endl; }
- switch 语句中的 表达式 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
- 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
- case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
- 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
- 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
- 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
- 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
来源:https://www.cnblogs.com/expedition/p/11317140.html