From f06fd85effc872259c8440d879cf84c9c7a71f9a Mon Sep 17 00:00:00 2001 From: 2023wyh <163550562+2023wyh@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:26:11 +0800 Subject: [PATCH] feat(CPP):Add C++ Operators --- .../C++Operators/cpp-arithmetic-operators.md | 140 +++++ .../C++Operators/cpp-assignment-operators.md | 503 ++++++++++++++++++ .../CPP/C++Operators/cpp-bitwise-operators.md | 190 +++++++ .../CPP/C++Operators/cpp-logical-operators.md | 187 +++++++ .../CPP/C++Operators/cpp-operators.md | 499 +++++++++++++++++ .../C++Operators/cpp-relational-operators.md | 158 ++++++ .../cpp-scope-resolution-operator.md | 292 ++++++++++ .../CPP/C++Operators/cpp-sizeof-operator.md | 349 ++++++++++++ .../cpp-ternary-or-conditional-operators.md | 120 +++++ .../CPP/C++Operators/cpp-unary-operators.md | 468 ++++++++++++++++ 10 files changed, 2906 insertions(+) create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-arithmetic-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-assignment-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-bitwise-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-logical-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-relational-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-scope-resolution-operator.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-sizeof-operator.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-ternary-or-conditional-operators.md create mode 100644 docs/resource/programming/CPP/C++Operators/cpp-unary-operators.md diff --git a/docs/resource/programming/CPP/C++Operators/cpp-arithmetic-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-arithmetic-operators.md new file mode 100644 index 00000000..13c0eb02 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-arithmetic-operators.md @@ -0,0 +1,140 @@ +--- +comments: true +--- + +C++ 算术运算符 +===== + +C++ 中的算术运算符用于对操作数执行算术或数学运算。例如,'**+**' 用于加法,'**–**' 用于减法,'*****' 用于乘法,等等。简单来说,算术运算符用于对变量和数据执行算术运算;它们遵循运算符和操作数之间的相同关系。 + +**C++ 算术运算符有 2 种类型:** + +1. **一元算术运算符** +2. **二元算术运算符** + +### 1. 二元算术运算符 + +这些运算符操作或使用两个操作数。C++ 提供了 **5** 个二进制*算术运算符*来执行算术函数: + +| 算子 | 运算符名称 | 操作 | 实现 | +| :---: | :--------: | :--------------------------------: | :--: | +| **+** | 加法 | 用于计算两个操作数的加法 | x+y | +| **–** | 减法 | 用于计算两个操作数的减法 | x-y | +| ***** | 乘法 | 用于计算两个操作数的乘法 | x*y | +| **/** | 取商 | 用于计算两个操作数的除法 | x/y | +| **%** | 取余 | 用于计算两个操作数后计算 Remainder | x%y | + +**例** + +```C++ +// C++ program to execute all 5 +// arithmetic function +#include +using` `namespace` `std; + +int` `main() +{ + ``int` `GFG1, GFG2; + ``GFG1 = 10; + ``GFG2 = 3; + + ``// printing the sum of GFG1 and GFG2 + ``cout<< ``"GFG1 + GFG2= "` `<< (GFG1 + GFG2) << endl; + + ``// printing the difference of GFG1 and GFG2 + ``cout << ``"GFG1 - GFG2 = "` `<< (GFG1 - GFG2) << endl; + + ``// printing the product of GFG1 and GFG2 + ``cout << ``"GFG1 * GFG2 = "` `<< (GFG1 * GFG2) << endl; + + ``// printing the division of GFG1 by GFG2 + ``cout << ``"GFG1 / GFG2 = "` `<< (GFG1 / GFG2) << endl; + + ``// printing the modulo of GFG1 by GFG2 + ``cout << ``"GFG1 % GFG2 = "` `<< (GFG1 % GFG2) << endl; + + ``return` `0; +} +``` + +**输出** + +```C++ +GFG1 + GFG2= 13 +GFG1 - GFG2 = 7 +GFG1 * GFG2 = 30 +GFG1 / GFG2 = 3 +GFG1 % GFG2 = 1 +``` + + + +### 2. 一元运算符 + +这些运算符操作或使用单个操作数。 + + +| 算子 | 象征 | 操作 | 实现 | +| :--------: | :--: | :------------------: | :--------: | +| 递减运算符 | — | 将变量的整数值减少 1 | –x 或 x — | +| 递增运算符 | ++ | 将变量的整数值增加 1 | ++x 或 x++ | + +**例** + +```C++ +// C++ Program to demonstrate the +// increment and decrement operators +#include +using` `namespace` `std; + +int` `main() +{ + ``int` `x = 5; + + ``// This statement Incremented 1 + ``cout << ``"x++ is "` `<< x++ << endl; + + ``// This statement Incremented 1 + ``// from already Incremented + ``// statement resulting in + ``// Incrementing of 2 + ``cout << ``"++x is "` `<< ++x << endl; + + ``int` `y = 10; + + ``// This statement Decremented 1 + ``cout << ``"y-- is "` `<< y-- << endl; + + ``// This statement Decremented 1 + ``// from already Decremented + ``// statement resulting in + ``// Decrementing of 2 + ``cout << ``"--y is "` `<< --y << endl; + + ``return` `0; +} +``` + +**输出** + +``` +x++ is 5 +++x is 7 +y-- is 10 +--y is 8 +``` + + + +*在 **++x** 中,变量的值首先增加/递增,然后再在程序中使用。* + +*在 **x++** 中,变量的值在增加/递增之前被分配。* + +*递减运算符也会发生类似情况。* + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 + diff --git a/docs/resource/programming/CPP/C++Operators/cpp-assignment-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-assignment-operators.md new file mode 100644 index 00000000..f2131445 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-assignment-operators.md @@ -0,0 +1,503 @@ +--- +comments: true +--- + +C++ 赋值运算符 +===== + +在 C++ 中,赋值运算符通过执行简单的操作(例如为变量赋值)来构成许多算法和计算过程的支柱。它由**等号 ( = )** 表示,并提供任何编程语言中最基本的操作之一,用于为 C++ 中的变量分配一些值,或者换句话说,它用于存储某种信息。 + +## 语法 + +```C++ +variable = value; +``` + +右侧的**值**将分配给左侧的**变量**。变量和值应具有相同的数据类型。 + +该值可以是 Literal 或相同数据类型的其他变量。 + +**例** + +```C++ +// C++ program to illustrate the use of assignment operator +#include +using namespace std; + +int main() +{ + // Declare an integer variable + int x; + // Assign the value 20 to variable x using assignment + // operator + x = 20; + cout << "The value of x is: " << x << endl; + return 0; +} +``` + +**输出** + +```C++ +The value of x is: 20 +``` + +## 复合赋值运算符 + +在 C++ 中,赋值运算符可以与一些其他运算符组合成一个运算符,以便在一个语句中执行两个操作的组合。这些运算符称为复合赋值运算符。C++ 中有 10 个复合赋值运算符: + +1. 加法赋值运算符 ( += ) +2. 减法赋值运算符 ( -= ) +3. 乘法赋值运算符 ( *= ) +4. 除法赋值运算符 ( /= ) +5. 模数赋值运算符 ( %= ) +6. 按位 AND 赋值运算符 ( &= ) +7. 按位 OR 赋值运算符 ( |= ) +8. 按位 XOR 赋值运算符 ( ^= ) +9. 左移赋值运算符 ( <<= ) +10. 右移赋值运算符 ( >>= ) + +让我们详细看看他们中的每一个。 + + + +### 1. 加法赋值运算符 (+=) + +在 C++ 中,加法赋值运算符 (+=) 将加法运算与变量赋值相结合,允许您以简洁有效的方式通过指定的表达式递增变量的值。 + +**语法** + +```C++ +variable += value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable + value; +``` + +**例** + +```C++ +// C++ program to illustrate the addition assignment operator +#include +using namespace std; + +int main() +{ + // Initialize a variable to the store the total + int total = 0; + total += 10; + total += 20; + total += 30; + total += 40; + total += 50; + + // Display the final total + cout << "The total is: " << total << endl; + return 0; +} +``` + +**输出** + +```C++ +The total is: 150 +``` + + + +### 2. 减法赋值运算符 (-=) + +C++ 中的减法赋值运算符 (-=) 使您能够通过从变量中减去另一个值来更新变量的值。当您需要执行减法并将结果存储回同一变量中时,此运算符特别有用。 + +**语法** + +```C++ +variable -= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable - value; +``` + +**例** + +```C++ +// C++ program to illustrate the substraction assignment +// operator +#include +using namespace std; + +int main() +{ + int x = 20; + int y = 5; + + // Using the subtraction assignment operator + x -= y; + cout << "After subtraction x is now: " << x << endl; + return 0; +} +``` + +**输出** + +```C++ +After subtraction x is now: 15 +``` + + + +### 3. 乘法赋值运算符 (*=) + +在 C++ 中,乘法赋值运算符 (*=) 用于通过将变量与另一个值相乘来更新变量的值。 + +**语法** + +```C++ +variable *= value; +``` + +上述表达式等效于以下表达式: + +```C+= +variable = variable * value; +``` + +**例** + +```C++ +#include +using namespace std; + +int main() { + int x = 7; // Initialize x to 7 + x *= 4; + cout << "The updated value of x is: " << x << endl; + return 0; +} +``` + +**输出** + +```C++ +The updated value of x is: 28 +``` + + + +### 4. 除法赋值运算符 (/=) + +除法赋值运算符将左侧的变量除以右侧的值,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable /= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable / value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of divide assignment +// operator +#include +using namespace std; + +// driver code +int main() +{ + double x = 30.0; + + // dividing x by 4 and assigning the value to x + x /= 4.0; + + cout << "value : " << x << endl; + + return 0; +} +``` + +**输出** + +```C++ +value : 7.5 +``` + + + +### 5. 模数赋值运算符 (%=) + +当左侧的变量除以右侧的值或变量时,模赋值运算符计算余数,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable %= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable % value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of modulus assignment +// operator +#include +using namespace std; + +int main() +{ + int a = 15; + + // finding the remainder when a is divided by 15 and + // assigning it to a again + a %= 5; + + cout << "value : " << a << endl; + return 0; +} +``` + +**输出** + +```C++ +value : 0 +``` + + + +### 6. 按位 AND 赋值运算符 (&=) + +此运算符在左侧的变量和右侧的值之间执行按位 AND,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable &= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable & value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of Bitwise AND +// Assignment Operator +#include +using namespace std; + +int main() +{ + int a = 9; + + // using Bitwise AND Assignment Operator + a &= 3; + cout << "value : " << a << endl; + return 0; +} +``` + +**输出** + +```C++ +value : 1 +``` + + + +### 7. 按位 OR 赋值运算符 (|=) + +按位 OR 赋值运算符在左侧的变量和右侧的值或变量之间执行按位 OR,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable |= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable | value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of Bitwise OR +// Assignment Operator +#include +using namespace std; + +int main() +{ + int a = 5; // 0101 in binary + + // using Bitwise OR Assignment Operator + a |= 2; + cout << "value : " << a << endl; + return 0; +} +``` + +**输出** + +```C++ +value : 7 +``` + + + +### 8. 按位 XOR 赋值运算符 (^=) + +按位 XOR 赋值运算符在左侧的变量和右侧的值或变量之间执行按位 XOR,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable ^= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable ^ value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of Bitwise XOR +// Assignment Operator +#include +using namespace std; + +int main() +{ + int a = 7; + + // using Bitwise XOR Assignment Operator + a ^= 3; + cout << "value : " << a << endl; + return 0; +} +``` + +**输出** + +```C++ +value : 4 +``` + + + +### 9. 左移赋值运算符 (<<=) + +左移赋值运算符将左侧变量的位向左移动右侧指定的位置数,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable <<= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable << value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of Left Shift +// Assignment Operator +#include +using namespace std; + +int main() +{ + int a = 9; + + // using Left Shift Assignment Operator + a <<= 4; + cout << "value : " << a << endl; + return 0; +} +``` + +**输出** + +```C++ +value : 144 +``` + + + +### 10. 右移赋值运算符 (>>=) + +右移赋值运算符将左侧变量的位向右移动右侧指定的位数,并将结果分配给左侧的变量。 + +**语法** + +```C++ +variable >>= value; +``` + +上述表达式等效于以下表达式: + +```C++ +variable = variable >> value; +``` + +**例** + +```C++ +// C++ program to illustrate the use of Right Shift +// Assignment Operator +#include +using namespace std; + +int main() +{ + int a = 19; + + // using Right Shift Assignment Operator + a >>= 4; + cout << "value : " << a << endl; + return 0; +} +``` + +**输出** + +```C++ +value : 1 +``` + +另外,需要注意的是,上述所有运算符都可以重载,以便使用用户定义的数据类型进行自定义操作,以执行我们想要的操作。 + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 diff --git a/docs/resource/programming/CPP/C++Operators/cpp-bitwise-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-bitwise-operators.md new file mode 100644 index 00000000..4f612d48 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-bitwise-operators.md @@ -0,0 +1,190 @@ +--- +comments: true +--- + +C++ 位运算符 +===== + +C++ 中存在各种运算符。每个 Operator 都有一个特定的元件以及一个要执行的 Action。我们在 C++ 中有各种类别的运算符。 + +1. 算术运算符 +2. 关系运算符 +3. 逻辑运算符 +4. 赋值运算符 +5. 按位运算符 + +在本文中,我们将了解 C++ 中的按位运算符。 + +## C++ 位运算符 + +位运算符是用于对整数执行位级运算的运算符。执行此操作时,整数被视为二进制数字序列。在 C++ 中,我们有各种类型的按位运算符。 + +1. 按位 AND (&) + +2. 按位 OR (|) + +3. 按位 XOR (^) + +4. 按位 NOT (~) + +5. 左移 (<<) + +6. 右移 (>>) + + + +### 1. 按位 AND (&) + +在两个整数之间执行按位 AND 运算,它将比较同一位置上的每个位,结果位将仅设置 (1) 并且仅当两个相应的位都设置为 (1) 时。用于执行按位 AND 运算的符号是 &。 + +**示例**:我们将在两个数字 7 和 4 之间执行按位运算。在二进制中,7 将表示为 111,4 将表示为 100。 + +```C++ + 1 1 1 +& 1 0 0 + ------ + 1 0 0 +``` + +正如我们在上面的例子中看到的,只有那些位是 SET 位,其相应的位 (BOTH) 都被设置了。因此 7&4=4 + + + +### 2. 按位 OR (|) + +如果在两个整数之间进行按位 OR 运算,则会比较同一位置上的每个位,如果设置了任何相应的位,则结果位将设置为 (1)。用于执行按位 OR 运算的符号是 |。 + +**示例:**我们将在两个数字 7 和 4 之间执行按位 OR 运算。在二进制中,7 将表示为 111,4 将表示为 100。 + +```C++ + 1 1 1 +| 1 0 0 + ------ + 1 1 1 +``` + +正如我们在上面的例子中看到的,这些位是 set 位,其中至少设置了任何一个相应的位。因此 7|4=7。 + + + +### 3. 按位 XOR (^) + +如果在两个整数之间执行按位 XOR 运算,它将比较同一位置的每个位,如果任何一个对应的位不同,即其中一个位应为 1,另一个应为 0,则结果位将设置为 (1)。用于执行按位 XOR 运算的符号是 ^。 + +**示例:**我们将在两个数字 7 和 4 之间执行按位 XOR 运算。在二进制中,7 将表示为 111,4 将表示为 100。 + +```C++ + 1 1 1 +^ 1 0 0 + ------ + 0 1 1 +``` + +正如我们在上面的例子中看到的,这些位是 SET BITS 其对应的 BITS 不同 。因此 7^4=3。 + + + +### 4.按位 NOT (~) + +按位 NOT 操作对单个数字执行。它将当前位更改为它的补码,即如果当前位为 0,则结果为 1,如果当前位为 1,则它将变为 0。它由符号 ~ 表示。 + +**示例:**我们将对数字 4 执行按位 NOT 运算。数字 4 以二进制表示为 100。 + +```C++ +~ 1 0 0 + ------ + 0 1 1 +``` + +正如我们在 result 中看到的,初始值为 1 的位在 result 中为 0,反之亦然。因此,数字 4 的按位 NOT 将为 3。 + + + +### 5.左移 (<<) + +此运算符将 Integer 的位移动到左侧的特定数字(如前所述)。此左移操作等效于将整数乘以 2 次方移位的位置数。用于表示 Left Shift Operator 的符号是 <<。 + +**示例:**假设我们有一个整数 5,我们将它的位左移 2 个位置。该操作将表示为 x << 2。 + +数字 5 以二进制表示为 101。我们将在开头添加一些零以左移位。因此,它将表示为 00000101。现在,我们将所有位向左移动两个位置,并将空位置填充为 0。因此,它将变为 00010100,即 20 。如前所述,左移数字两位意味着将其乘以 2 得到 2,即 4 。5*4 = 20 显示了上述陈述。 + + + +### 6.右移 (>>) + +此运算符将 Integer 的位向右移动特定数字(如前所述)。此右移操作等效于将整数除以移位位置的 2 次方数。用于表示 Left Shift Operator 的符号是 >>。 + +**示例:**假设我们有一个整数 16,我们将它的位右移 2 个位置。该操作将表示为 x >> 2。 + +数字 16 以二进制表示为 10000。我们将在开头添加一些零以右移位。因此,它将表示为 00010000。现在,我们将所有位向右移动两个位置,并将空位置填充为 0。因此,它将变为 00000100,即 4 。如前所述,将数字右移两位意味着将其除以 2 升至 2,即 4 。16*4 = 4 显示了上述陈述。 + + + +## C++ 编程按位运算符 + +以下是该主题的实现: + +```C++ +// C++ Program to demonstrate +// Bitwise Operator +#include + +using namespace std; + +// Main function +int main() +{ + int a = 5; // 101 + int b = 3; // 011 + + // Bitwise AND + int bitwise_and = a & b; + + // Bitwise OR + int bitwise_or = a | b; + + // Bitwise XOR + int bitwise_xor = a ^ b; + + // Bitwise NOT + int bitwise_not = ~a; + + // Bitwise Left Shift + int left_shift = a << 2; + + // Bitwise Right Shift + int right_shift = a >> 1; + + // Printing the Results of + // Bitwise Operators + cout << "AND: " << bitwise_and << endl; + cout << "OR: " << bitwise_or << endl; + cout << "XOR: " << bitwise_xor << endl; + cout << "NOT a: " << bitwise_not << endl; + cout << "Left Shift: " << left_shift << endl; + cout << "Right Shift: " << right_shift << endl; + + return 0; +} +``` + +**输出** + +```C++ +AND: 1 +OR: 7 +XOR: 6 +NOT a: -6 +Left Shift: 20 +Right Shift: 2 +``` + + + +## 结论 + +总之,按位运算符用于在二进制(位)级别执行操作。我们有各种按位运算符,如 C++ 中的 AND、OR、XOR、NOT、左移和右移运算符。通过此操作,可以非常精确地完成单个位的操作,这在低级数据处理中是必不可少的。 + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 \ No newline at end of file diff --git a/docs/resource/programming/CPP/C++Operators/cpp-logical-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-logical-operators.md new file mode 100644 index 00000000..7340149c --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-logical-operators.md @@ -0,0 +1,187 @@ +--- +comments: true +--- + +C++ 逻辑运算符 +===== + +在 C++ 编程语言中,逻辑运算符是允许您组合或修改条件以进行逻辑计算的符号。它们用于对布尔值(**true** 或 **false**)执行逻辑运算。 + +在 C++ 中,有三个逻辑运算符: + +1. **逻辑 AND ( & & ) 运算符** +2. **逻辑 OR ( || )运算符** +3. **逻辑 NOT ( !)运算符** + +让我们详细讨论每个运算符。 + +## 1. 逻辑 AND 运算符 ( & & ) + +C++ **逻辑 AND 运算符 (&&)** 是一个二元运算符,如果其两个操作数均为 true,则返回 true。否则,它将返回 false。下面是 AND 运算符的真值表: + +| 操作数 1 | 操作数 2 | 结果 | +| :------: | :------: | :----------: | +| 真 | 真 | **真** | +| 真 | 假 | **假** | +| 假 | 真 | **假** | +| 假 | 假 | **假** | + +***注意:*** *在 C 语言中,false 表示为 0,而 true 表示为任何非零值,通常为 1。* + + + +### 逻辑 AND 的语法 + +```C++ +expression1 && expression2 +``` + +### C++ 中的逻辑 AND 示例 + +```C++ +// C++ Program to illustrate the logical AND Operator +#include +using namespace std; + +int main() +{ + + // initialize variables + int age = 25; + bool isStudent = true; + + // Using AND operator in if condition + if (age > 18 && isStudent) { + cout << "You are eligible for a student discount." + << endl; + } + else { + cout << "You are not eligible for a student " + "discount." + << endl; + + return 0; + } +``` + +**输出** + +```C++ +You are eligible for a student discount. +``` + +**说明:**在上面的代码中,我们在 if 条件中使用了 **AND** 运算符来检查年龄是否大于 18 岁,该人是否为检查。如果两个条件都成立,则将打印消息“您有资格享受学生折扣”。否则,将执行 else 语句。 + + + +## 2. 逻辑 OR 运算符 ( || ) + +C++ **逻辑 OR 运算符 ( || )** 是一个二元运算符,如果其至少有一个操作数为 true,则返回 true。仅当两个操作数均为 false 时,它才返回 false。下面是 OR 运算符的真值表: + +| 操作数 1 | 操作数 2 | 结果 | +| :------: | :------: | :----------: | +| 真 | 真 | **真** | +| 真 | 假 | **真** | +| 假 | 真 | **真** | +| 假 | 假 | **假** | + +### 逻辑 OR 的语法 + +```C++ +expression1 || expression2 +``` + +### C++ 中的逻辑 OR 示例 + +```C++ +// C++ program to demonstrate the logical or operator +#include +using namespace std; + +int main() +{ + + int num = 7; + + // using logical or for conditional statement + if (num <= 0 || num >= 10) { + cout + << "The number is outside the range of 0 to 10." + << endl; + } + else { + cout << "The number is between 0 to 10." << endl; + } + + return 0; +} +``` + +**输出** + +```C++ +The number is between 0 to 10. +``` + +**说明:**在上面的代码中,条件 **num < 0 || num > 10** 检查数字是小于等于 0 **还是**大于等于 10。如果这些条件中的任何一个为 true,则将打印消息 “The number is outside the range of 0 to 10..” 否则打印 else 语句。 + + + +## 3. 逻辑 NOT 运算符 ( ! ) + +C++ **逻辑 NOT 运算符 ( !** ) 是用于否定 condition 值的一元运算符。如果条件为 false,则返回 true,如果条件为 true,则返回 false。下面是 NOT 运算符的真值表: + +| 操作数 1 | 结果 | +| :------: | :----------: | +| 真 | **假** | +| 假 | **真** | + +### 逻辑 NOT 的语法 + +```C++ +! expression +``` + +### C++ 中的逻辑 NOT 示例 + +```C++ +// C++ program to illustrate the logical not operator +#include +using namespace std; + +int main() +{ + + bool isLoggedIn = false; + + // using logical not operator + if (!isLoggedIn) { + cout << "Please log in to access this feature." + << endl; + } + else { + cout << "Welcome to GeeksforGeeks!" << endl; + } + + return 0; +} +``` + +**输出** + +```C++ +Please log in to access this feature. +``` + +**说明:**在上面的代码中,条件 **'!isLoggedIn'** 检查用户是否未登录。如果条件为 true(即用户未登录),则将显示消息 “Please log in to access this feature.”,否则将打印 else 语句。 + + + +## 结论 + +使用 C++ 中的逻辑运算符,可以组合条件并创建富有表现力的逻辑。在代码中处理决策和分支时,它们非常宝贵。通过掌握这些逻辑运算符,您可以编写更健壮、更灵活的程序。 + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 + diff --git a/docs/resource/programming/CPP/C++Operators/cpp-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-operators.md new file mode 100644 index 00000000..c4b0c26f --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-operators.md @@ -0,0 +1,499 @@ +--- +comments: true +--- + +C++ 运算符 +===== + +**运算符**是对值进行操作以执行特定数学或逻辑计算的符号。它们构成了任何编程语言的基础。在 C++ 中,我们有内置的运算符来提供所需的功能。 + +运算符操作**操作数**。例如 + +```C++ +int c = a + b; +``` + +这里,'+' 是加法运算符。'a' 和 'b' 是被 '添加' 的操作数。 + +**C++ 中的运算符可分为 6 种类型:** + +1.算术运算符 +2.关系运算符 +3.逻辑运算符 +4.按位运算符 +5.赋值运算符 +6.三元运算符或条件运算符 + +![C++ 中的运算符](https://media.geeksforgeeks.org/wp-content/uploads/20220527101351/OperatorsinCPP.png) + +### 1) 算术运算符 + + 这些运算符用于对操作数执行算术或数学运算。例如,'+' 用于加法,'-' 用于减法,'*' 用于乘法,等等。 + + **算术运算符可分为 2 种类型:** + + **A) 一元运算符:**这些运算符操作或使用单个操作数。例如:Increment(++) 和 Decrement(–) 运算符。 + +| 名字 | 象征 | 描述 | 例 | +| :--------: | :--: | :------------------: | :---------------------: | +| 递增运算符 | ++ | 将变量的整数值增加 1 | int a = 5;一个++;返回 6 | +| 递减运算符 | -- | 将变量的整数值减少 1 | int a = 5;一个–;返回 4 | + +**例:** + +描述 + + + +**输出** + + ```C++ + a++ is 10 + ++a is 12 + b-- is 15 + --b is 13 + ``` + +**时间复杂度: O(1)** +**辅助空间: O(1)** + + +***注意:*** *++a 和 a++ 都是递增运算符,但是,两者略有不同。* + +*在 ++a 中,变量的值首先递增,然后在程序中使用它。在 a++ 中,首先分配变量的值,然后递>增。递减运算符也会发生类似情况。* + + + +**B) 二元运算符:**这些运算符操作或处理两个操作数。例如:Addition(+)、Subtraction(-) 等。 + + +| 名字 | 象征 | 描述 | 例 | +| :------------: | :------------: | :------------------------------: | :----------------------------------: | +| 加法 | + | 添加两个操作数 | int a = 3, b = 6;int c = a+b;c = 9 | +| 减法 | – | 从第一个操作数中减去第二个操作数 | int a = 9, b = 6;int c = a-b;c = 3 | +| 乘法 | * | 两个操作数相乘 | int a = 3, b = 6;int c = a*b;c = 18 | +| 划分 | / | 将第一个操作数除以第二个操作数 | int a = 12, b = 6;int c = a/b;c = 2 | +| 模运算 | % | 返回余数 - 整数除法 | int a = 8, b = 6;int c = a%b;c = 2 | + +***注意:*** *模运算符 (%) 运算符只能与整数一起使用。* + + + +**例** + +```C++ +// CPP Program to demonstrate the Binary Operators +#include +using namespace std; + +int main() +{ + int a = 8, b = 3; + + // Addition operator + cout << "a + b = " << (a + b) << endl; + + // Subtraction operator + cout << "a - b = " << (a - b) << endl; + + // Multiplication operator + cout << "a * b = " << (a * b) << endl; + + // Division operator + cout << "a / b = " << (a / b) << endl; + + // Modulo operator + cout << "a % b = " << (a % b) << endl; + + return 0; +} +``` + +**输出** + +```C++ +a + b = 11 +a - b = 5 +a * b = 24 +a / b = 2 +a % b = 2 +``` + +**时间复杂度: O(1)** +**辅助空间: O(1)** + + + +### 2) 关系运算符 + +这些运算符用于比较两个操作数的值。例如,'>' 检查一个操作数是否大于另一个操作数,等等。结果返回一个布尔值,即 **true** 或 **false。** + +| 名字 | 象征 | 描述 | 例 | +| :------------: | :------------: | :----------------------------------------: | :-------------------------------: | +| 等于 | == | 检查两个操作数是否相等 | int a = 3, b = 6;a==b;返回 false | +| 大于 | > | 检查第一个操作数是否大于第二个操作数 | int a = 3, b = 6;a>b;返回 false | +| 大于或等于 | >= | 检查第一个操作数是否大于或等于第二个操作数 | int a = 3, b = 6;a>=b;返回 false | +| 小于 | < | 检查第一个操作数是否小于第二个操作数 | int a = 3, b = 6;a +using namespace std; + +int main() +{ + int a = 6, b = 4; + + // Equal to operator + cout << "a == b is " << (a == b) << endl; + + // Greater than operator + cout << "a > b is " << (a > b) << endl; + + // Greater than or Equal to operator + cout << "a >= b is " << (a >= b) << endl; + + // Lesser than operator + cout << "a < b is " << (a < b) << endl; + + // Lesser than or Equal to operator + cout << "a <= b is " << (a <= b) << endl; + + // true + cout << "a != b is " << (a != b) << endl; + + return 0; +} +``` + + +**输出** + +```C++ +a == b is 0 +a > b is 1 +a >= b is 1 +a < b is 0 +a <= b is 0 +a != b is 1 +``` +**时间复杂度: O(1)** +**辅助空间: O(1)** + +这里, **0** 表示 **false **, **1 ** 表示**true **。要了解更多信息,请参阅文章 – [关系运算符](https://www.geeksforgeeks.org/relational-operators-in-c/)。 + + + +### 3) 逻辑运算符 + +这些运算符用于组合两个或多个条件或约束,或补充对所考虑的原始条件的评估。结果返回一个布尔值,即 **true** 或 **false **。 + +| 名字 | 象征 | 描述 | 例 | +| :------: | :--: | :-------------------------------------------: | :-----------------------------------: | +| 逻辑 AND | && | 仅当所有操作数均为 true 或非零时,才返回 true | int a = 3, b = 6;A&&B;返回 true | +| 逻辑 OR | \|\| | 如果任一操作数为 true 或非零,则返回 true | int a = 3, b = 6;一个\|\|b;返回 true | +| 逻辑 NOT | ! | 如果操作数为 false 或零,则返回 true | int a = 3;!一个;返回 false | + +**例** + +```c++ +// CPP Program to demonstrate the Logical Operators +#include +using namespace std; + +int main() +{ + int a = 6, b = 4; + + // Logical AND operator + cout << "a && b is " << (a && b) << endl; + + // Logical OR operator + cout << "a || b is " << (a || b) << endl; + + // Logical NOT operator + cout << "!b is " << (!b) << endl; + + return 0; +} +``` + +**输出** + +```C++ +a && b is 1 +a ! b is 1 +!b is 0 +``` + +**时间复杂度: O(1)** +**辅助空间: O(1)** + +这里, **0** 表示 **false **, **1 ** 表示 **true **。要了解更多信息,请参阅文章 – [逻辑运算符](https://www.geeksforgeeks.org/operators-in-c-set-2-relational-and-logical-operators)。 + + + +### 4) 按位运算符 + +这些运算符用于对操作数执行 bit-level 操作。运算符首先转换为位级,然后对操作数执行计算。可以在位级别执行加法、减法、乘法等数学运算,以加快处理速度。 + +| 名字 | 象征 | 描述 | 例 | +| :----------: | :--: | :----------------------------------------------------------: | :-----------------------------------: | +| 二进制 AND | & | 如果两个操作数中都存在 bit,则向计算结果复制一个位 | int a = 2, b = 3;(a & b);返回 2 | +| 二进制 OR | \| | 如果计算结果存在于任何操作数中,则向计算结果复制一个位 | int a = 2, b = 3;(一 \| 二);返回 3 | +| 二进制 XOR | ^ | 如果该位存在于任一操作数中,但不是同时存在于两个操作数中,则将其复制到计算结果中 | int a = 2, b = 3;(a ^ b);返回 1 | +| 左移 | << | 将值向左移动右操作数指定的位数。 | int a = 2, b = 3;(a << 1);返回 4 | +| 右移 | >> | 将值向右移动右操作数指定的位数。 | int a = 2, b = 3;(第 1 >>);返回 1 | +| 一个人的补充 | ~ | 将二进制数字 1 更改为 0,将 0 更改为 1 | int b = 3;(~b);返回 -4 | + +***注:*** *只有* ***char*** *和* ***int*** *数据类型可以与按位运算符一起使用。* + + + +**例** + +```C++ +// CPP Program to demonstrate the Bitwise Operators +#include +using namespace std; + +int main() +{ + int a = 6, b = 4; + + // Binary AND operator + cout << "a & b is " << (a & b) << endl; + + // Binary OR operator + cout << "a | b is " << (a | b) << endl; + + // Binary XOR operator + cout << "a ^ b is " << (a ^ b) << endl; + + // Left Shift operator + cout << "a<<1 is " << (a << 1) << endl; + + // Right Shift operator + cout << "a>>1 is " << (a >> 1) << endl; + + // One’s Complement operator + cout << "~(a) is " << ~(a) << endl; + + return 0; +} +``` + +**输出** + +``` +a & b is 4 +a | b is 6 +a ^ b is 2 +a<<1 is 12 +a>>1 is 3 +~(a) is -7 +``` + +**时间复杂度: O(1)** +**辅助空间: O(1)** + +要了解更多信息,请参阅文章 – [按位运算符](https://www.geeksforgeeks.org/bitwise-operators-in-c-cpp)。 + + + +### 5) 赋值运算符 + +这些运算符用于为变量赋值。赋值运算符的左侧操作数是变量,赋值运算符的右侧操作数是值。右侧的值必须与左侧的变量具有相同的数据类型,否则编译器将引发错误。 + +| 名字 | 象征 | 描述 | 例 | +| :--------------: | :--: | :----------------------------------------------------------: | :---------------------------: | +| 赋值运算符 | = | 将右侧的值分配给左侧的变量 | int a = 2;a = 2 | +| 加法和赋值运算符 | += | 首先将左侧变量的当前值与右侧的值相加,然后将结果分配给左侧的变量 | int a = 2, b = 4;a+=b;a = 6 | +| 减法和赋值运算符 | -= | 首先从左侧变量的当前值中减去右侧的值,然后将结果分配给左侧的变量 | int a = 2, b = 4;a-=b;a = -2 | +| 乘法和赋值运算符 | *= | 首先将左侧变量的当前值乘以右侧的值,然后将结果分配给左侧的变量 | int a = 2, b = 4;a*=b;a = 8 | +| 除法和赋值运算符 | /= | 首先将左侧变量的当前值除以右侧的值,然后将结果分配给左侧的变量 | int a = 4, b = 2;a /=b;a = 2 | + +**例** + +```C++ +// CPP Program to demonstrate the Assignment Operators +#include +using namespace std; + +int main() +{ + int a = 6, b = 4; + + // Assignment Operator + cout << "a = " << a << endl; + + // Add and Assignment Operator + cout << "a += b is " << (a += b) << endl; + + // Subtract and Assignment Operator + cout << "a -= b is " << (a -= b) << endl; + + // Multiply and Assignment Operator + cout << "a *= b is " << (a *= b) << endl; + + // Divide and Assignment Operator + cout << "a /= b is " << (a /= b) << endl; + + return 0; +} +``` + +**输出** + +``` +a = 6 +a += b is 10 +a -= b is 6 +a *= b is 24 +a /= b is 6 +``` + +**时间复杂度: O(1)** +**辅助空间: O(1)** + + + +### 6) 三元或条件运算符 (?:) + +此运算符根据条件返回值。 + +``` +Expression1? Expression2: Expression3 +``` + +三元运算符 **?**根据 **Expression1 ** 的计算确定答案。如果为 **true **,则计算 **Expression2 ** 并将其用作表达式的答案。如果 **Expression1 ** 为 **false **,则计算 **Expression3 ** 并将其用作表达式的答案。 + +这个运算符需要**三个操作数**,因此它被称为三元运算符。 + +**例** + +```C++ +// CPP Program to demonstrate the Conditional Operators +#include +using namespace std; + +int main() +{ + int a = 3, b = 4; + + // Conditional Operator + int result = (a < b) ? b : a; + cout << "The greatest number is " << result << endl; + + return 0; +} +``` + +**输出** + +```C++ +The greatest number is 4 +``` + +**时间复杂度: O(1)** +**辅助空间: O(1)** + + + +**7)** 除了上面讨论的运算符之外,C++ 中还有一些其他常见的运算符。以下是详细讨论的这些运算符的列表: + +**A) sizeof 运算符:**此一元运算符用于计算其操作数或变量的大小。 + +```C++ +sizeof(char); // returns 1 +``` + +**B) 逗号运算符(,):**此二元运算符(由标记表示)用于计算其第一个操作数并丢弃结果,然后计算第二个操作数并返回此值(和类型)。它用于将各种表达式组合在一起。 + +```C++ +int a = 6; +int b = (a+1, a-2, a+5); // b = 11 +``` + +**C) -> 运算符:**此运算符用于访问类或结构体的变量。 + +```C++ +cout<first_name; +``` + +**D) Cast 运算符:**此一元运算符用于将一种数据类型转换为另一种数据类型。 + +```C++ +float a = 11.567; +int c = (int) a; // returns 11 +``` + +**E) 点运算符(.):**此运算符用于访问 C++ 中结构变量或类对象的成员。 + +```C++ +cout< +using namespace std; + +int main() +{ + int a = 6; + int* b; + int c; + // & Operator + b = &a; + + // * Operator + c = *b; + cout << " a = " << a << endl; + cout << " b = " << b << endl; + cout << " c = " << c << endl; + + return 0; +} +``` + +**输出** + +```C++ + a = 6 + b = 0x7ffe8e8681bc + c = 6 +``` + +**H) <<运算符:**称为插入运算符。它与 cout 一起使用以打印输出。 + +**I) >>运算符:**称为提取运算符。它与 cin 一起使用以获取输入。 + +```C++ +int a; +cin>>a; +cout<优先权运算符描述关联性1.()括号(函数调用)从左到右[]方括号 (数组下标) .通过对象名称选择成员 ->通过指针选择成员 ++/–后缀递增/递减 2.++/–前缀递增/递减从右到左+/-一元加/减 !~逻辑求反/按位补码 (类型)Cast (将值转换为类型的临时值) *引用 &地址(操作数) size的确定此实现的大小(以字节为单位) 3.*,/,%乘法/除法/模数从左到右4.+/-加法/减法从左到右5.<< , >>左按位移,右按位移从左到右6.< , <=关系 小于/小于或等于从左到右> , >=关系大于/大于或等于从左到右7.== , !=关系等于/不等于从左到右8.&按位 AND从左到右9.^按位异或从左到右10.|按位(含 OR)从左到右11.&&逻辑 AND从左到右12.||逻辑 OR从左到右13.?:三元条件从右到左14.=分配从右到左+= , -=加法/减法赋值 *= , /=乘法/除法赋值 %= , &=模数/按位 AND 赋值 ^= , |=按位互斥/非独占 OR 赋值 <>=按位左/右分配 15.,表达式分隔符从左到右 + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 \ No newline at end of file diff --git a/docs/resource/programming/CPP/C++Operators/cpp-relational-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-relational-operators.md new file mode 100644 index 00000000..c0a741d4 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-relational-operators.md @@ -0,0 +1,158 @@ +--- +comments: true +--- + +C++ 关系运算符 +===== + +在 C++ 编程语言中,我们有时需要比较值和表达式。这种比较使我们能够确定关系、做出决策并控制我们的程序流程。C++ 中的关系运算符提供了比较值和评估条件的方法。 + +在本文中,我们将了解 C++ 关系运算符,并了解它们在代码中进行逻辑比较的重要性。 + +## C++ 中的关系运算符 + +C++ 关系运算符用于比较两个值或表达式,基于此比较,它返回一个布尔值(**true** 或 **false**)作为结果。通常 **false** 表示为 **0,true** 表示为任何**非零值**(大部分为 **1**)。 + + + +### 如何使用 Relational Operator? + +所有 C++ 关系运算符都是与两个操作数一起使用的二元运算符,如下所示: + +```C++ +operand1 relational_operator operand2 +expression1 relational_operator expression2 +``` + +## C++ 关系运算符的类型 + +我们在 C++ 中有六个关系运算符,下面将通过示例进行解释。 + +| S. 编号 | 关系运算符 | 意义 | +| :-----: | :--------: | :------: | +| 1. | > | 大于 | +| 2. | < | 小于 | +| 3. | >= | 大于等于 | +| 4. | <= | 小于等于 | +| 5. | == | 等于 | +| 6. | != | 不等于 | + +### 1.大于 ( > ) + +**大于 ( > )** 运算符检查左操作数是否大于右操作数。如果满足条件,则返回 true,否则返回 false。 + +**例** + +```C++ +29 > 21 // returns true +12 > 12 // return false +10 > 57 // return false +``` + +### 2. 小于 ( < ) + +**小于 ( < )** 运算符检查左操作数是否小于右操作数。如果满足条件,则返回 true,否则返回 false。 + +**例** + +```C++ +2 < 21 // returns true +12 < 12 // return false +12 < 5 // return false +``` + +### 3. 大于或等于 ( >= ) + +**大于或等于 ( >= )** 运算符检查左操作数是否大于或等于右操作数。如果满足条件,则返回 true,否则返回 false。 + +**例** + +```C++ +29 >= 21 // returns true +12 >= 12 // return true +10 >= 58 // return false +``` + +### 4. 小于或等于 ( <= ) + +**小于或等于 ( <= )** 运算符检查左操作数是否小于或等于右操作数。如果满足条件,则返回 true,否则返回 false。 + +**例** + +```C++ +2 <= 21 // returns true +12 <= 12 // return true +12 <= 5 // return false +``` + +### 5. 等于 ( == ) + +**等于 ( == )** 运算符检查两个值是否相等。如果值相等,则返回 true,否则返回 false。 + +**例** + +```C++ +9 == 9 // returns true +19 == 12 // return false +``` + +### 6. 不等于 ( != ) + +**不等于 ( != )** 运算符检查两个值是否不相等。如果值不同,则返回 true,如果值相等,则返回 false。 + +**例** + +```C++ +12 != 21 // returns true +12 != 12 // return false +``` + +## C++ 关系运算符示例 + +在下面的代码中,我们定义了两个具有一些整数值的变量,并通过使用 C++ 中的关系运算符比较它们来打印输出。在输出中,我们得到 1、0、0、0 和 1,其中 **0 表示** false,1 **表示 true。** + + + +```C++ +// C++ Program to illustrate the relational operators +#include +using namespace std; + +int main() +{ + // variables for comparison + int a = 10; + int b = 6; + + // greater than + cout << "a > b = " << (a > b) << endl; + + // less than + cout << "a < b = " << (a < b) << endl; + + // equal to + cout << "a == b = " << (a == b) << endl; + + // not equal to + cout << "a != b = " << (a != b) << endl; + + return 0; +} +``` + + + +**输出** + +```C++ +a > b = 1 +a < b = 0 +a == b = 0 +a != b = 1 +``` + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 diff --git a/docs/resource/programming/CPP/C++Operators/cpp-scope-resolution-operator.md b/docs/resource/programming/CPP/C++Operators/cpp-scope-resolution-operator.md new file mode 100644 index 00000000..0e2113c0 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-scope-resolution-operator.md @@ -0,0 +1,292 @@ +--- +comments: true +--- + +C++ 范围解析运算符 +===== + +在 C++ 中,范围解析运算符为 **::** 。它用于以下目的。 + +**1) 要在存在同名的局部变量时访问全局变量: ** + +```C++ +// C++ program to show that we can access a global variable +// using scope resolution operator :: when there is a local +// variable with same name +#include +using namespace std; + +int x; // Global x + +int main() +{ +int x = 10; // Local x +cout << "Value of global x is " << ::x; +cout << "\nValue of local x is " << x; +return 0; +} +``` + +**输出** + +```C++ +Value of global x is 0 +Value of local x is 10 +``` + +**2) 在类外部定义函数:** + +```C++ +// C++ program to show that scope resolution operator :: is +// used to define a function outside a class +#include +using namespace std; + +class A { +public: + // Only declaration + void fun(); +}; + +// Definition outside class using :: +void A::fun() { cout << "fun() called"; } + +int main() +{ + A a; + a.fun(); + return 0; +} +``` + +**输出** + +```C++ +fun() called +``` + + + +**3) 访问类的静态变量:** + +```C++ +// C++ program to show that :: can be used to access static +// members when there is a local variable with same name +#include +using namespace std; + +class Test +{ + static int x; +public: + static int y; + + // Local parameter 'x' hides class member + // 'x', but we can access it using :: + void func(int x) + { + // We can access class's static variable + // even if there is a local variable + cout << "Value of static x is " << Test::x; + + cout << "\nValue of local x is " << x; + } +}; + +// In C++, static members must be explicitly defined +// like this +int Test::x = 1; +int Test::y = 2; + +int main() +{ + Test obj; + int x = 3 ; + obj.func(x); + + cout << "\nTest::y = " << Test::y; + + return 0; +} +``` + +**输出** + +```C++ +Value of static x is 1 +Value of local x is 3 +Test::y = 2 +``` + + + +**4) 在多重继承的情况下:** 如果两个祖先类中存在相同的变量名,我们可以使用范围解析运算符来区分。 + +```C++ +// Use of scope resolution operator in multiple inheritance. +#include +using namespace std; + +class A +{ +protected: + int x; +public: + A() { x = 10; } +}; + +class B +{ +protected: + int x; +public: + B() { x = 20; } +}; + +class C: public A, public B +{ +public: +void fun() +{ + cout << "A's x is " << A::x; + cout << "\nB's x is " << B::x; +} +}; + +int main() +{ + C c; + c.fun(); + return 0; +} +``` + +**输出** + +```C++ +A's x is 10 +B's x is 20 +``` + + + +**5) 对于命名空间**:如果两个命名空间中存在具有相同名称的类,我们可以将命名空间名称与范围解析运算符一起使用来引用该类,而不会发生任何冲突 + +```C++ +#include +#include +using namespace std; +#define nline "\n" + +// Global Declarations + +string name1 = "GFG"; +string favlang = "python"; +string companyName = "GFG_2.0"; + +// You can also do the same thing in classes as we did in +// our struct example + +class Developer { +public: + string name = "krishna"; + string favLang = "c++"; + string company = "GFG"; + + // Accessing Global Declarations + + Developer(string favlang, string company) + : favLang(favlang) + , company(companyName) + { + } +}; + +int main() +{ + Developer obj = Developer("python", "GFG"); + cout << "favourite Language : " << obj.favLang << endl; + cout << "company Name : " << obj.company << nline; +} +``` + +**输出** + +```C++ +favourite Language : python +company Name : GFG_2.0 +``` + + + +**6) 在另一个类中引用一个类:**如果一个类存在于另一个类中,我们可以使用嵌套类,通过范围解析运算符来引用嵌套的类 + +```C++ +// Use of scope resolution class inside another class. +#include +using namespace std; + +class outside { +public: + int x; + class inside { + public: + int x; + static int y; + int foo(); + }; +}; +int outside::inside::y = 5; + +int main() +{ + outside A; + outside::inside B; +} +``` + + + +**7) 在派生对象中引用基类的成员:**在基类和派生类中具有相同的方法的情况下,我们可以通过范围解析运算符来引用每个,如下所示。 + +```C++ +// Refer to a member of the base class in the derived object. +#include + +class Base { +public: + void func() + { + std::cout << "This is Base class" << std::endl; + } +}; + +class Derived : public Base { +public: + void func() + { + std::cout << "This is Derived class" << std::endl; + } +}; + +int main() +{ + Derived obj; + obj.Base::func(); + obj.func(); + return 0; +} +``` + +**输出** + +```C++ +This is Base class +This is Derived class +``` + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 diff --git a/docs/resource/programming/CPP/C++Operators/cpp-sizeof-operator.md b/docs/resource/programming/CPP/C++Operators/cpp-sizeof-operator.md new file mode 100644 index 00000000..17b42a22 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-sizeof-operator.md @@ -0,0 +1,349 @@ +--- +comments: true +--- + +C++ sizeof 运算符 +===== + +sizeof 运算符是一个一元编译时运算符,用于在编译时确定变量、数据类型和常量的大小(以字节为单位)。它还可以确定类、结构和联合的大小。 + +**语法**: + +```C++ + sizeof (数据类型) + + 或 + + sizeof (表达式) +``` + + + +### 示例 1:不同数据类型占用的字节数。 + +下面是 C++ 程序,用于实现 sizeof 运算符来确定不同数据类型所占用的字节数: + +```C++ +// C++ program to implement sizeof +// to determine the number of bytes +// taken by different data types +#include +using namespace std; + +// Driver code +int main() +{ + cout << "No of Bytes taken up by char is " << + sizeof(char) << endl; + cout << "No of Bytes taken up by int is " << + sizeof(int) << endl; + cout << "No of Bytes taken up by float is " << + sizeof(float) << endl; + cout << "No of Bytes taken up by double is " << + sizeof(double) << endl; + cout << "No of Bytes taken up by long is " << + sizeof(long) << endl; +} +``` + +**输出** + +```C++ +No of Bytes taken up by char is 1 +No of Bytes taken up by int is 4 +No of Bytes taken up by float is 4 +No of Bytes taken up by double is 8 +No of Bytes taken up by long is 8 +``` + + + +### 示例 2:不同数据类型的变量占用的字节数。 + +下面是实现 sizeof 的 C++ 程序,用于确定不同数据类型的变量所占用的字节数: + +```C++ +// C++ program to implement sizeof +// to determine the number of bytes +// taken by variables of different +// data types +#include +using namespace std; + +// Driver code +int main() +{ + int a; + float b; + char g; + cout << "No of Bytes taken up by a is " << + sizeof(a) << endl; + cout << "No of Bytes taken up by b is " << + sizeof(b) << endl; + cout << "No of Bytes taken up by g is " << + sizeof(g) << endl; + return 0; +} +``` + +**输出** + +```C++ +No of Bytes taken up by a is 4 +No of Bytes taken up by b is 4 +No of Bytes taken up by g is 1 +``` + + + +### 示例 3:表达式占用的字节数。 + +下面是实现 sizeof 以确定表达式占用的字节数的 C++ 程序: + +```C++ +// C++ program to implement sizeof +// to determine the number of bytes +// taken by an expression: +#include +using namespace std; + +// Driver code +int main() +{ + int a = 5; + long x = 9; + double p = 10.2; + float g = 2.5; + + cout << "No of Bytes taken up by (a+g) is " << + sizeof(a + g) << endl; + cout << "No of Bytes taken up by (a+x) is " << + sizeof(a + x) << endl; + cout << "No of Bytes taken up by (a+p) is " << + sizeof(a + p) << endl; + cout << "No of Bytes taken up by (x+p) is " << + sizeof(x + p) << endl; + return 0; +} +``` + +**输出** + +```C++ +No of Bytes taken up by (a+g) is 4 +No of Bytes taken up by (a+x) is 8 +No of Bytes taken up by (a+p) is 8 +No of Bytes taken up by (x+p) is 8 +``` + + + +### **示例 4:使用 sizeof() 查找数组的大小。** + +下面是实现 sizeof 来确定数组大小的 C++ 程序: + +```C++ +// C++ program to implement sizeof +// to determine the size of an array +#include +using namespace std; + +// Driver code +int main() +{ + int x[] = {1, 2, 3, 5, 6, 7, 8, 9}; + int length = sizeof(x) / sizeof(x[0]); + cout << "Length of the array is " << + length << endl; + return 0; +} +``` + +**输出** + +```C++ +Length of the array is 8 +``` + + + +### 示例 5:查找类的大小。 + +下面是实现 sizeof 以查找类大小的 C++ 程序: + +```C++ +// C++ program to implement sizeof +// to find the size of the class +#include +using namespace std; + +class GFG +{ + int x; +}; + +// Driver code +int main() +{ + GFG g; + cout << "Size of class gfg is in bytes : " << + sizeof(g) << endl; + return 0; +} +``` + +**输出** + +```C++ +Size of class gfg is in bytes : 4 +``` + + + +### **示例 6:查找指针的大小。** + +下面是 C++ 程序实现 sizeof 来查找指针的大小: + +```C++ +// C++ program to implement sizeof +// to find the size of pointers +#include +using namespace std; + +// Driver code +int main() +{ + int *a = new int(10); + char *g = new char('g'); + double *d = new double(7.5); + cout << "size of pointer a is " << + sizeof(a) << endl; + cout << "size of pointer *a is " << + sizeof(*a) << endl; + cout << "size of pointer g is " << + sizeof(g) << endl; + cout << "size of pointer *g is " << + sizeof(*g) << endl; + cout << "size of pointer d is " << + sizeof(d) << endl; + cout << "size of pointer *d is " << + sizeof(*d) << endl; + return 0; +} +``` + +**输出** + +```C++ +size of pointer a is 8 +size of pointer *a is 4 +size of pointer g is 8 +size of pointer *g is 1 +size of pointer d is 8 +size of pointer *d is 8 +``` + + + +### 示例 7:sizeof() 运算符的嵌套。 + +下面是显示 sizeof 运算符嵌套的 C++ 程序: + +```C++ +// C++ program to show the +// nesting of sizeof operator +#include +using namespace std; + +// Driver code +int main() +{ + int x; + double y; + cout << "Nesting of sizeof operator is implemented " << + "as sizeof(x*sizeof(y)) :" << + sizeof(x * sizeof(y)) << endl; + return 0; +} +``` + +**输出** + +```C++ +Nesting of sizeof operator is implemented as sizeof(x*sizeof(y)) :8 +``` + + + +### 示例 8:查找结构体的大小。 + +下面是 C++ 程序实现 sizeof 运算符来查找结构体的大小: + +```C++ +// C++ program to implement the +// sizeof operator to find the +// size of structure +#include +using namespace std; + +struct gfg +{ + int z; + float d; + char s[20]; +}g; + +// Driver code +int main() +{ + cout << "size of structure is " << + sizeof(g) << endl; + return 0; +} +``` + +**输出** + +```C++ +size of structure is 28 +``` + + + +### 示例 9:查找联合体的大小。 + +下面是 C++ 程序实现 sizeof 运算符来查找联合体的大小: + +```C++ +// C++ program to implement the +// sizeof operator to find the +// size of the union +#include +using namespace std; + +union gfg +{ + int z; + double d; +}g; + +// Driver code +int main() +{ + cout << "size of union is " << + sizeof(g) << endl; + return 0; +} +``` + +**输出** + +```C++ +size of union is 8 +``` + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 diff --git a/docs/resource/programming/CPP/C++Operators/cpp-ternary-or-conditional-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-ternary-or-conditional-operators.md new file mode 100644 index 00000000..b6e884a8 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-ternary-or-conditional-operators.md @@ -0,0 +1,120 @@ +--- +comments: true +--- + +C++ 三元/条件运算符 +===== + +在 C++ 中,**三元** **或条件运算符 ( ? : )** 是编写条件语句的最短形式。它可以用作内联条件语句来代替 if-else 来执行一些条件代码。 + +## 三元运算符 ( ? : ) 的语法 + +三元(或条件)运算符的语法为: + +```C++ +expression ? statement_1 : statement_2; +``` + +顾名思义,三元运算符适用于三个操作数,其中 + +- **expression:**要评估的条件。 +- **statement_1**:表达式计算结果为 true 时将执行的语句。 +- **statement_2:**表达式计算结果为 false 时要执行的代码。 + + + +// 图像 + +上述三元运算符的语句等效于下面给出的 if-else 语句: + +```C++ +if ( condition ) { + statement1; +} +else { + statement2; +} +``` + + + +## C++ 中的三元运算符示例 + +```C++ +// C++ program to illustrate the use of ternary operator +#include +using namespace std; + +int main() +{ + + // creating a variable + int num, test = 40; + + // assigning the value of num based on the value of test + // variable + num = test < 10 ? 10 : test + 10; + + printf("Num - Test = %d", num - test); + + return 0; +} +``` + +**输出** + +```C++ +Num - Test = 10 +``` + +在上面的代码中,我们使用了三元运算符, 根据另一个名为 test 的变量的值来分配变量 **num** 的值。 + +***注意:*** *三元运算符的优先级排名第三,因此我们需要使用这些表达式,以避免由于运算符优先级管理不当而导致的错误。* + + + +## C++ 嵌套三元运算符 + +嵌套的三元运算符定义为在另一个三元运算符中使用一个三元运算符。与 if-else 语句一样,三元运算符也可以相互嵌套。 + +### 在 C++ 中嵌套三元运算符的示例 + +在下面的代码中,我们将使用嵌套的三元运算符找到三个数字中最大的一个。 + +```C++ +// C++ program to find the largest of the three number using +// ternary operator +#include +using namespace std; + +int main() +{ + + // Initialize variable + int A = 39, B = 10, C = 23; + + // Evaluate largest of three using ternary operator + int maxNum + = (A > B) ? ((A > C) ? A : C) : ((B > C) ? B : C); + + cout << "Largest number is " << maxNum << endl; + + return 0; +} +``` + +**输出** + +```C++ +Largest number is 39 +``` + +正如我们所看到的,可以将三元运算符彼此嵌套,但代码变得难以阅读和理解。因此,通常避免使用嵌套的三元运算符。 + +此外,三元运算符只应用于短条件代码。对于较大的代码,应首选其他条件语句。 + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。 diff --git a/docs/resource/programming/CPP/C++Operators/cpp-unary-operators.md b/docs/resource/programming/CPP/C++Operators/cpp-unary-operators.md new file mode 100644 index 00000000..099cc0e9 --- /dev/null +++ b/docs/resource/programming/CPP/C++Operators/cpp-unary-operators.md @@ -0,0 +1,468 @@ +--- +comments: true +--- + +C++ 一元运算符 +===== + +C++ 中的一元运算符是那些作用于单个值(操作数)的运算符。它们执行更改值的符号、将其递增或递减 1 或获取其地址等操作。示例包括 ++ 表示增量,— 表示递减,+ 表示正值,– 表示负值,!用于逻辑否定,以及 & 用于检索内存地址。在本文中,我们将讨论 C++ 中可用的各种一元运算符。 + +## C++ 中的一元运算符类型 + +C++ 共有 8 个一元运算符,如下所示: + +1. **自增运算符 (++)** +2. **自减运算符 (–)** +3. **一元加号运算符 (+)** +4. **一元减号运算符 (-)** +5. **逻辑 否 运算符 (!)** +6. **按位 否 运算符 (~)** +7. **取址 运算符 (&)** +8. **间接寻址运算符 (\*)** +9. **sizeof 运算符** + +### **1. 递增运算符 (++)** + +increment 运算符用于将其操作数的值增加 1。它适用于数字操作数,并用作操作数的前缀和后缀 + +**语法** + +```C++ +++ operand +``` + +或 + +```C++ +operand ++ +``` + +**例** + +```C++ +#include + +using namespace std; + +int main() +{ + int x = 5; + + // Increment Operator (++) + cout << "Initial value of x: " << x << endl; + x++; // Increment x by 1 + cout << "After x++, x is now: " << x << endl; + + // Prefix and Postfix Increment/Decrement + int a = 10; + int b, c; + + b = ++a; // Prefix increment: first, increment a, then + // assign to b + c = a++; // Postfix increment: first, assign a to c, + // then increment a + + cout << "a: " << a << ", b: " << b << ", c: " << c + << endl; + + return 0; +} +``` + +**输出** + +```C++ +Initial value of x: 5 +After x++, x is now: 6 +a: 12, b: 11, c: 11 +``` + + + +### **2. 递减运算符 (–)** + +递减运算符用于将值递减 1。就像 increment 运算符一样,它可以用作 pre-decrement 和 post-decrement。它适用于数值。 + +**语法** + +```C++ +operand -- +``` + +或 + +```C++ +-- operand +``` + +**例** + +```C++ +// C++ program to illustrate the decrement operator +#include +using namespace std; + +int main() +{ + + int var = 10; + cout << "Value before decrement: " << var << endl; + var--; + cout << "Value after decrement: " << var; + return 0; +} +``` + +**输出** + +```C++ +Value before decrement: 10 +Value after decrement: 9 +``` + +要了解有关递增和递减运算符的更多信息,请参阅文章 –[ C++ 递增和递减运算符](https://www.geeksforgeeks.org/cpp-increment-and-decrement-operators/) + + + +### 3. 一元加运算符 (+) + +符号 (+) 表示 C++ 中的一元加号运算符,它显式指定其操作数的正值。如果 a 已经是正数,它不会改变 a 的符号,但它可以用于表达式的清晰度。 + +– 是一元减号运算符,它将其操作数的符号更改为负数。 + +解释: + +- 一元减号 (-) 更改值的符号。如果 a 为正数,则 -a 为负数。 +- 一元加号 (+) 用于显式指定正值。 + +**语法** + +```C++ ++ operand +``` + +**例** + +```C++ +// C++ program to illustrate the unary plus operator +#include + +using namespace std; + +int main() +{ + int a = 10; + int c = +a; // Unary Plus: Explicitly specifies 'a' as + // positive + + cout << "Original value of a: " << a << endl; + cout << "After using unary plus (+a): " << c << endl; + + return 0; +} +``` + +**输出** + +```C++ +Original value of a: 10 +After using unary plus (+a): 10 +``` + + + +### 4. 一元减号 (-) 运算符 + +符号 (+) 表示 C++ 中的一元加号运算符,该运算符将其操作数的符号更改为负数。如果操作数为负数,则此运算符将使其为正数,反之亦然。 + +**语法** + +```C++ +- operand +``` + +**例** + +```C++ +// C++ program to illustrate the unary minus operator +#include +using namespace std; + +int main() +{ + int var = 20; + cout << "Initial Value: " << var << endl; + cout << "Value with (-): " << -var; + + return 0; +} +``` + +**输出** + +```C++ +Initial Value: 20 +Value with (-): -20 +``` + + + +### 5. 逻辑 NOT 运算符 (!) + +逻辑 NOT 运算符 (!) 用于否定布尔表达式的值。如果操作数为 false,则返回 true,如果操作数为 true,则返回 false。 + +> **注意:**在 C++ 中,零被视为 false,任何非零值都被视为 true。 + +**语法** + +```C++ +! operand +``` + +**例** + +```C++ +// C++ program to illustrate the use of logical NOT operator +#include +#include +using namespace std; + +int main() +{ + bool isTrue = true; + // Logical NOT: Negates the value of 'isTrue' + bool isFalse = !isTrue; + + // print string correspoinding to true and false + cout << boolalpha; + + cout << "Value of isTrue: " << isTrue << endl; + cout << "Value of isFalse (!isTrue): " << isFalse + << endl; + + return 0; +} +``` + +**输出** + +```C++ +Value of isTrue: true +Value of isFalse (!isTrue): false +``` + + + +### 6. 按位 NOT 运算符 (~) + +C++ 中的按位 NOT 运算符 ~ 对整数等整型数据类型执行按位求反运算。它反转操作数的每个位,将每个 0 位更改为 1,将每个 1 位更改为 0'。 + +**语法** + +```C++ +~ operand +``` + +**例** + +```C++ + + +// C++ program to illustrate the use of first complement +// operator +#include + +using namespace std; + +int main() +{ + // Binary: 0000 0101 + unsigned int a = 5; + // Bitwise NOT: Inverts each bit of 'a' + unsigned int b = ~a; + + cout << "Original value of a: " << a + << " (Binary: 0000 0101)" << endl; + cout << "Value of b after ~a: " << b + << " (Binary: 1111 1010)" << endl; + + return 0; +} +``` + +**输出** + +```C++ +Original value of a: 5 (Binary: 0000 0101) +Value of b after ~a: 4294967290 (Binary: 1111 1010) +``` + + + +### 7. Addressof 运算符 (&) + +addressof 运算符 (&) 检索变量的内存地址。它返回变量在计算机内存中存储的内存位置。 + +**语法** + +```C++ +& operand +``` + +**例** + +```C++ +// C++ program to illustrate the use of addressof operator +#include + +using namespace std; + +int main() +{ + int number = 42; + // Pointer 'ptr' stores the address of 'number' + int* ptr = &number; + + cout << "Value of number: " << number << endl; + cout << "Address of number: " << &number << endl; + + return 0; +} +``` + +**输出** + +```C++ +Value of number: 42 +Address of number: 0x7fff5785a304 +``` + + + +### 8. 取消引用运算符 (*) + +取消引用运算符 (*) 用于访问存储在指针中的特定内存地址处的值。它 “指向” 存储在该 Sddress 中的值。 + +**语法** + +```C++ +* operand +``` + +**例** + +```C++ +// C++ program to illustrate the dereferencing operator +#include +using namespace std; + +int main() +{ + int var = 10; + int* ptr = &var; + + cout << "var = " << var << endl; + cout << "*ptr = " << *ptr; + return 0; +} +``` + +**输出** + +```C++ +var = 10 +*ptr = 10 +``` + + + +### 9. sizeof 运算符 + +sizeof 运算符是 C++ 中的一个特殊一元运算符,它返回其操作数的大小 it 字节。其操作数可以是任何数据类型或变量。 + +**语法** + +```C++ +sizeof (operand) +``` + +**例** + +```C++ +// C++ program to illustrate the use of sizeof operator +#include +using namespace std; + +int main() +{ + // integer array with 10 elements + int arr[10]; + + // finding size of integer + cout << "Integer Size: " << sizeof(int) << endl; + cout << "Size of Integer Array with Elements: " + << sizeof(arr); + return 0; +} +``` + +**输出** + +```C++ +Integer Size: 4 +Size of Integer Array with Elements: 40 +``` + + + +## C++ 中一元运算符的优先级和结合性 + +### **一元运算符的优先级** + +一元运算符通常比大多数二元运算符具有更高的优先级。在大多数二进制操作之前,它们具有固定的执行顺序。 + +### **一元运算符的结合性** + +一元运算符是右结合的,这意味着如果将多个一元运算符应用于同一操作数,则会从右到左计算它们。 + +**例** + +- int a = 5;: 使用值 5 初始化变量 'a'。 +- int b = -++a;: 在此表达式中: +- ++a 是前缀增量,它将 'a' 的值增加 1。 +- – 是一元减号运算符,它更改从 ++a 获得的值的符号。 +- 然后在应用一元运算符后显示 'a' 的初始值和 'b' 的值。 + +```C++ +// C++ program to illustrate the precedence and +// associativity of the unary operators +#include +using namespace std; + +int main() +{ + int a = 5; + + // Demonstration of unary operators' precedence and + // associativity + int b = -++a; + + cout << "Initial value of a: " << a << endl; + cout << "Value of b (-++a): " << b << endl; + + return 0; +} +``` + +**输出** + +```C++ +Initial value of a: 6 +Value of b (-++a): -6 +``` + + + +夏天来了,也是提高技能的时候了!超过 5,000 名学习者现在已经完成了从 **DSA 基础知识到高级开发计划**(如全栈、后端开发、数据科学)的旅程。 + +当我们的 [DSA to Development: Coding Guide](https://gfgcdn.com/tu/Q8V/) 将帮助您在几个月内掌握所有这些时,为什么还要去其他任何地方呢!现在就申请我们的[DSA发展计划](https://gfgcdn.com/tu/Q8V/),我们的顾问将与您联系以获得进一步的指导和支持。