运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 杂项运算符
一、算术运算符

二、关系运算符

三、逻辑运算符

四、位运算符
位运算符作用于位,并逐位执行操作
假设如果 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