C++自增自减运算符(++和--)用法详解
存储在变量中的值虽然可以增加或减少任何数量,但是将它们自增或自减 1 是特别常见的。例如,我们经常进行令循环控制变量在每次循环迭代时都自增 1 或自减 1 的操作。
事实上,如果说要自增或自减一个值而没有指定多少,那么一般可以将其理解为自增或自减 1,C++ 提供了一对运算符执行此操作,它们都是一元运算符,这意味着它们只在一个操作数上运行。
自增运算符(++)可以将其操作数的值增加 1,自减运算符(-)可以将其操作数的值减 1。例如,在表达式 num++ 中,单个操作数是变量 num,该表达式将其值增加 1。
以下是将变量 num 的值自增 1 的 3 种不同的方法:
以下是使用自增和自减运算符的合法和非法表达式示例:
这意味着,上面程序中第 10 行和第 17 行的语句也可以写作如下形式:
在像上面程序中这样的简单使用语句中,没有区别。但是,当这些运算符用于不仅仅是自增或自减变量的语句中时,其区别就很重要。例如,来看以下代码:
后缀模式会使在表达式中使用变量的值之后发生自增。在该示例中,cout 将显示 4,然后 num 将被自增到 5。但是,前缀模式将使自增先完成。在下面的语句中,mim 将首先自增到 5,然后 cout 将显示 5:
num = 4;
cout << ++ num;
下面程序通过将自增和自减运算符放在 cout 语句中进一步说明了这些动态变化,这样可以很容易地看出在使用前缀和后缀模式之间的区别。但是,一般不要这样做。也就是说,在实际的编程应用中,不建议在 cout 语句中放置自增或自减运算符。
事实上,如果说要自增或自减一个值而没有指定多少,那么一般可以将其理解为自增或自减 1,C++ 提供了一对运算符执行此操作,它们都是一元运算符,这意味着它们只在一个操作数上运行。
自增运算符(++)可以将其操作数的值增加 1,自减运算符(-)可以将其操作数的值减 1。例如,在表达式 num++ 中,单个操作数是变量 num,该表达式将其值增加 1。
以下是将变量 num 的值自增 1 的 3 种不同的方法:
num = num + 1;
num + = 1;
num ++; //此语句使用了自增运算符
num = num - 1;
num - = 1;
num --; //此语句使用了自减运算符
以下是使用自增和自减运算符的合法和非法表达式示例:
count++; // 合法
count--; // 合法
5++; //非法
5--; //非法
#include <iostream> using namespace std; int main() { int count = 1; while (count < 6) { cout << count << " "; count++; //The ++ operator increments count } cout << endl; int count =5; // Re-Initialize the loop control variable to 5 while (count> 0) { count << count << " "; count --; } cout << endl; return 0; }程序输出结果:
1 2 3 4 5
5 4 3 2 1
后缀和前缀模式
以上所有示例中使用的自增和自减运算符都是采用后缀模式的,即运算符放在变量之后。其实这 2 个运算符也可以在前缀模式下工作,即运算符放在变量名之前。这意味着,上面程序中第 10 行和第 17 行的语句也可以写作如下形式:
++count;
--count;
在像上面程序中这样的简单使用语句中,没有区别。但是,当这些运算符用于不仅仅是自增或自减变量的语句中时,其区别就很重要。例如,来看以下代码:
num =4;
cout << num ++;
后缀模式会使在表达式中使用变量的值之后发生自增。在该示例中,cout 将显示 4,然后 num 将被自增到 5。但是,前缀模式将使自增先完成。在下面的语句中,mim 将首先自增到 5,然后 cout 将显示 5:
num = 4;
cout << ++ num;
下面程序通过将自增和自减运算符放在 cout 语句中进一步说明了这些动态变化,这样可以很容易地看出在使用前缀和后缀模式之间的区别。但是,一般不要这样做。也就是说,在实际的编程应用中,不建议在 cout 语句中放置自增或自减运算符。
#include <iostream> using namespace std; int main() { int num = 4; cout << num << " "; //输出 4 cout << num++ << " "; // 输出 4, 然后num+1 cout << num << " "; // 输出5 cout << ++num << "\n"; //先num+1,然后输出6 cout << num << " "; // 输出6 cout << num-- << " "; //输出 6,然后num-1 cout << num << " "; //输出5 cout << --num << "\n"; //先num-1,然后输出4 return 0; }程序输出结果:
4 4 5 6
6 6 5 4
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算