c++运算符

简介: c++运算符

C++ 是一种功能强大的编程语言,它提供了丰富的运算符用于执行各种操作,如算术运算、比较运算、逻辑运算、位运算等。以下是对 C++ 中主要运算符的详细讲解,并附有相应的编程示例。

1. 算术运算符

算术运算符用于执行基本的数学运算,如加、减、乘、除等。

· + 加法

· - 减法或取反(作为一元运算符时)

· * 乘法

· / 除法

· % 取模(求余数)

· ++ 自增

· -- 自减

示例

#include <iostream> 
int main() { 
int a = 5, b = 3; 
std::cout << "a + b = " << a + b << std::endl; 
std::cout << "a - b = " << a - b << std::endl; 
std::cout << "a * b = " << a * b << std::endl; 
std::cout << "a / b = " << a / b << std::endl; // 整数除法,结果为 1 
std::cout << "a % b = " << a % b << std::endl; // 求余数,结果为 2 
a++; // a 现在为 6 
--b; // b 现在为 2 
std::cout << "a after increment = " << a << std::endl; 
std::cout << "b after decrement = " << b << std::endl; 
return 0; 
}

2. 关系运算符

关系运算符用于比较两个值的大小或是否相等。

· == 等于

· != 不等于

· > 大于

· < 小于

· >= 大于或等于

· <= 小于或等于

示例

#include <iostream> 
int main() { 
int x = 5, y = 10; 
std::cout << "x == y: " << (x == y) << std::endl; // 输出 0(false) 
std::cout << "x != y: " << (x != y) << std::endl; // 输出 1(true) 
std::cout << "x > y: " << (x > y) << std::endl; // 输出 0(false) 
std::cout << "x < y: " << (x < y) << std::endl; // 输出 1(true) 
std::cout << "x >= y: " << (x >= y) << std::endl; // 输出 0(false) 
std::cout << "x <= y: " << (x <= y) << std::endl; // 输出 1(true) 
return 0; 
}

3. 逻辑运算符

逻辑运算符用于连接布尔值或返回布尔值的表达式,并返回一个新的布尔值。

· && 逻辑与

· || 逻辑或

· ! 逻辑非

#include <iostream> 
int main() { 
bool flag1 = true, flag2 = false; 
std::cout << "flag1 && flag2: " << (flag1 && flag2) << std::endl; // 输出 0(false) 
std::cout << "flag1 || flag2: " << (flag1 || flag2) << std::endl; // 输出 1(true) 
std::cout << "!flag1: " << !flag1 << std::endl; // 输出 0(false) 
return 0; 
}

示例

4. 位运算符

位运算符直接对二进制位进行操作。

· & 位与

· | 位或

· ^ 位异或

· ~ 位非

· << 左移

· >> 右移

示例

#include <iostream> 
int main() { 
unsigned int a = 60; // 60 = 0011 1100 
unsigned int b = 13; // 13 = 0000 1101 
std::cout << "a & b: " << (a & b) << std::endl; // 12 = 0000 1100 
std::cout << "a | b: " << (a | b) << std::endl; // 61 = 0011 1101 
std::cout << "a ^ b: " << (a ^ b) << std::endl; // 49 = 0011 0001 
std::cout << "~a: " << (~a) << std::endl; // 依赖于系统字长和表示方法,通常为很大的数 
std::cout << "a << 2: " << (a << 2) << std::endl; // 240 = 1111 0000 
std::cout << "a >> 2: " << (a >> 2) << std::endl; // 15 = 0000 1111 
return 0; 
}

5. 赋值运算符

赋值运算符用于给变量赋值。

· = 赋值

· += 加等于

· -= 减等于

· *= 乘等于

· /= 除等于

· %= 模等于

示例

#include <iostream> 
int main() { 
int a = 10; 
a += 5; // a 现在为 15 
a -= 3; // a 现在为 12 
a *= 2; // a 现在为 24 
a /= 2; // a 现在为 12 
a %= 3; // a 现在为 0(因为 12 除以 3 的余数是 0) 
std::cout << "a after assignments: " << a << std::endl; 
return 0; 
}

6. 其他运算符

C++ 还提供了其他一些运算符,如条件运算符(?:)、逗号运算符(,)、成员选择运算符(.->)、下标运算符([])、指针解引用运算符(*)、地址运算符(&)、作用域解析运算符(::)等。

以上就是对 C++ 中主要运算符的讲解和编程示例。这些运算符是编写 C++ 程序时不可或缺的工具。

 

相关文章
|
1月前
|
C++
C++类自加自减与<<运算符的重载实现
C++类自加自减与<<运算符的重载实现
|
1月前
|
C++
|
1月前
|
存储 算法 编译器
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
86 0
|
1月前
|
C++
C++程序中的赋值运算符
C++程序中的赋值运算符
25 2
|
1月前
|
算法 C++ 开发者
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
50 0
|
4天前
|
安全 程序员 C++
C++一分钟之-重载运算符
【6月更文挑战第21天】C++的运算符重载让程序员能为自定义类型定制运算符行为,增强代码表达力。但要注意清晰性、优先级和返回类型。遵循运算符原有意义,充分测试,并用注释解释非直观设计。示例展示了如何为复数类重载`+`运算符。避免重载内置类型,注意结合性,且慎用隐式转换。重载应提升可读性而非复杂化代码。
16 2
|
7天前
|
C++
C++一分钟之-理解C++的运算符与表达式
【6月更文挑战第18C++的运算符和表达式构成了编程的基础,涉及数学计算、逻辑判断、对象操作和内存管理。算术、关系、逻辑、位、赋值运算符各有用途,如`+`、`-`做加减,`==`、`!=`做比较。理解运算符优先级和结合律至关重要。常见错误包括优先级混淆、整数除法截断、逻辑运算符误用和位运算误解。解决策略包括明确优先级、确保浮点数除法、正确使用逻辑运算符和谨慎进行位运算。通过实例代码学习,如 `(a &gt; b) ? &quot;greater&quot; : &quot;not greater&quot;`,能够帮助更好地理解和应用这些概念。掌握这些基础知识是编写高效、清晰C++代码的关键。
16 3
|
1月前
|
C++ 编译器
|
29天前
|
程序员 编译器 C++
c++重载运算符和重载函数
c++重载运算符和重载函数
26 1
|
1月前
|
存储 安全 程序员
C++中的四种类型转换运算符
reinterpret_cast` 则是非常危险的类型转换,仅用于二进制级别的解释,不检查安全性。`dynamic_cast` 用于类的继承层次间转换,向上转型总是安全的,向下转型时会借助 RTTI 进行安全性检查。只有当转换路径在继承链内时,转换才会成功。
13 1