C++教程(四)运算符
发布人:shili8
发布时间:2024-11-15 19:22
阅读次数:0
**C++ 教程 (四) 运算符**
在 C++ 中,运算符是用于表达式的符号或关键字,它们可以改变变量的值、比较两个值等。运算符分为以下几种:
###1. 算术运算符算术运算符用于进行基本的数学运算,如加减乘除等。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `+` | 加法 | 将两个值相加 |
| `-` | 减法 | 将一个值从另一个值中减去 |
| `*` | 乘法 | 将两个值相乘 |
| `/` |除法 | 将一个值除以另一个值 |
| `%` | 取余 | 返回一个数除以另一个数后余数 |
示例代码:
cppint a =5; int b =3; // 加法int sum = a + b; // sum =8// 减法int diff = a - b; // diff =2// 乘法int product = a * b; // product =15//除法double quotient = (double)a / b; // quotient =1.66667// 取余int remainder = a % b; // remainder =2
###2. 关系运算符关系运算符用于比较两个值的大小或相等性。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `==` | 等于 | 检查两个值是否相等 |
| `!=` | 不等于 | 检查两个值是否不相等 |
| `<` | 小于 | 检查一个值是否小于另一个值 |
| `>` | 大于 | 检查一个值是否大于另一个值 |
| `<=` | 小于或等于 | 检查一个值是否小于或等于另一个值 |
| `>=` | 大于或等于 | 检查一个值是否大于或等于另一个值 |
示例代码:
cppint a =5; int b =3; // 等于bool isEqual = (a == b); // isEqual = false// 不等于bool isNotEqual = (a != b); // isNotEqual = true// 小于bool isLessThan = (a < b); // isLessThan = false// 大于bool isGreaterThan = (a > b); // isGreaterThan = true// 小于或等于bool isLessThanOrEqualTo = (a <= b); // isLessThanOrEqualTo = true// 大于或等于bool isGreaterThanOrEqualTo = (a >= b); // isGreaterThanOrEqualTo = true
###3. 逻辑运算符逻辑运算符用于表达式的布尔值。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `&&` | 与 | 检查两个布尔值是否都为 true |
| `||` | 或 | 检查两个布尔值是否有一个为 true |
| `!` | 非 | 检查一个布尔值是否为 false |
示例代码:
cppbool a = true; bool b = false; // 与bool andResult = (a && b); // andResult = false// 或bool orResult = (a || b); // orResult = true// 非bool notResult = (!a); // notResult = false
###4. 位运算符位运算符用于操作整数的二进制表示。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `&` | 与 | 检查两个整数的二进制表示是否都为1 |
| `|` | 或 | 检查两个整数的二进制表示是否有一个为1 |
| `^` | 异或 | 检查两个整数的二进制表示是否不同 |
| `~` | 非 | 取一个整数的二进制表示的反 |
示例代码:
cppint a =5; // 二进制表示:101int b =3; // 二进制表示:011// 与int andResult = (a & b); // 和结果:001// 或int orResult = (a | b); // 或结果:111// 异或int xorResult = (a ^ b); // 异或结果:110// 非int notResult = ~a; // 非结果: -6
###5. 赋值运算符赋值运算符用于将一个值赋给另一个变量。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `=` | 等于 | 将一个值赋给另一个变量 |
| `+=` | 加等于 | 将一个值加到另一个变量中 |
| `-=` | 减等于 | 将一个值减去另一个变量中的值 |
| `*=` | 乘等于 | 将一个值乘以另一个变量中的值 |
| `/=` |除等于 | 将一个值除以另一个变量中的值 |
| `%=` | 取余等于 | 将一个值取另一个变量中的值的余数 |
示例代码:
cppint a =5; int b =3; // 等于a = b; // a =3// 加等于a += b; // a =6// 减等于b -= a; // b = -3// 乘等于a *= b; // a = -15//除等于b /= a; // b =0.2// 取余等于a %= b; // a = -0.6
###6. 递归运算符递归运算符用于函数的自身调用。
示例代码:
cppint factorial(int n) { if (n ==0) return1; else return n * factorial(n-1); } int main() { int result = factorial(5); // result =120 return0; }
###7. 指针运算符指针运算符用于操作指针的值。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `*` | 解引用 | 取一个指针所指向的值 |
| `&` | 取地址 | 取一个变量的地址 |
示例代码:
cppint a =5; int *ptr = &a; // ptr 是 a 的地址// 解引用int value = *ptr; // value =5// 取地址int address = &a; // address 是 a 的地址
###8. 成员运算符成员运算符用于操作结构体或类的成员。
| 运算符 | 名称 | 描述 |
| --- | --- | --- |
| `.` | 成员访问 | 取一个结构体或类的成员 |
| `->` | 成员访问 | 取一个指向结构体或类的指针的成员 |
示例代码:
cppstruct Person { int age; char name[10]; }; Person person = {25, "John"}; // 成员访问int age = person.age; // age =25// 成员访问 (指针) Person *ptr = &person; int age2 = ptr->age; // age2 =25
###9. 操作符重载操作符重载用于定义一个类或结构体的运算符。
示例代码:
cppclass Vector { public: int x, y; Vector(int a, int b) : x(a), y(b) {} friend Vector operator+(const Vector &v1, const Vector &v2); }; Vector operator+(const Vector &v1, const Vector &v2) { return Vector(v1.x + v2.x, v1.y + v2.y); } int main() { Vector v1(3,4); Vector v2(5,6); Vector result = v1 + v2; // result = (8,10) return0; }
###10. 模板运算符模板运算符用于定义一个函数或运算符的模板。
示例代码:
cpptemplate <typename T> T max(T a, T b) { return (a > b) ? a : b; } int main() { int result1 = max(5,3); // result1 =5 double result2 = max(5.5,3.7); // result2 =5.5 return0; }
###