零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
除了前面文章讲解的逻辑运算符 / 三目运算符 / 逗号表达式,C 语言中自加 ++ / 自减 -- 运算符也是开发中使用比较频繁的一种运算符;在实际编写中,尤其对初学者或者很久没接触它的,会对它的原理和运算结果产生混淆,接下来做详细辨析。
一.C语言自加++ / 自减 -- 运算符简介
C 语言自加 ++ / 自减 -- 运算符实际就是对变量本身做 +1 或者 -1 操作,例如:
/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - 自增/自减运算符(i++/++i/--i/i--)
//@Time:2021/05/28 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/
#include "stdafx.h"
#include "stdio.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
printf("a = %d b = %d c = %d d = %d \n", a,b,c,d);
a++; //等价 a = a + 1
++b; //等价 b = b + 1
c--; //等价 c = c - 1
--d; //等价 d = d - 1
printf("a = %d b = %d c = %d d = %d \n", a, b, c, d);
system("pause");
return 0;
}
/*
输出结果:
a = 0 b = 0 c = 0 d = 0
a = 1 b = 1 c = -1 d = -1
请按任意键继续. . .
*/
可能看到这里不少小伙伴有个疑问?++a 和 a++ 计算结果都是 1 ,前 ++ 后 ++ 两者有什么区别??
1.前 ++ 后 ++ 的区别
无论前++,后++,最后都会自增1,区别在于是先自增在参与运算,还是先参与运算再加1操作(自减与自增类似)。
- 前
++:先进行++操作,再参与运算。 - 后
++:先参与运算,再进行++操作。
![图片[1]-C语言自加自减运算符(++i / i++)-猿说编程](https://www.codersrc.com/wp-content/uploads/2021/05/6512bd43d9caa6e-3.png)
2.前--后-- 的区别
无论前--,后--,最后都会自减1,区别在于是先自减在参与运算,还是先参与运算再减1操作(自减与自增类似)。
- 前
--:先进行--操作,再参与运算。 - 后
--:先参与运算,再进行--操作。
![图片[2]-C语言自加自减运算符(++i / i++)-猿说编程](https://www.codersrc.com/wp-content/uploads/2021/05/b6d767d2f8ed5d2-2.png)
二.C语言自加++/自减--运算符实战
/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - 自增/自减运算符(i++/++i/--i/i--)
//@Time:2021/05/28 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/
#include "stdafx.h"
#include "stdio.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int i = 0;
int j = 0;
printf("a = %d b = %d c = %d d = %d i = %d j = %d \n", a, b, c, d, i, j);
i = a++; // 后++:先参与运算,i = a,在执行加1操作 a = a + 1
j = ++b; // 前++:先执行加1操作 b = b + 1,参与运算,j = 1
printf("a = %d b = %d i = %d j = %d \n", a, b, i, j);
i = c--; // 后--:先参与运算,i = c,在执行减1操作 c = c - 1
j = --d; // 前--:先执行加1操作 d = d - 1,参与运算,j = -1
printf("c = %d d = %d i = %d j = %d \n", c, d, i, j);
system("pause");
return 0;
}
/*
输出结果:
a = 0 b = 0 c = 0 d = 0 i = 0 j = 0
a = 1 b = 1 i = 0 j = 1
c = -1 d = -1 i = 0 j = -1
请按任意键继续. . .
*/
需要重点说明的是:++ / -- 在变量前面和后面是有区别的,以++ 自增运算符为例:
++在前面叫做前自增(例如:++a),前自增先进行自增运算,再进行其他操作;++在后面叫做后自增(例如:a++),后自增先进行其他操作,再进行自增运算;
三.猜你喜欢
- 安装 Visual Studio
- 安装 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸载
- Visual Studio 2003/2015 卸载
- 设置 Visual Studio 字体/背景/行号
- C语言 Hello World
- C语言代码注释
- C语言数据类型 / 变量类型
- C语言变量声明和定义
- C语言格式控制符/占位符
- C语言 printf 函数
- C语言条件判断 if / else
- C语言逻辑运算符
- C语言三目运算符
- C语言逗号表达式
- C语言自加自减运算符(++i / i++)
ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END


![模拟真人鼠标轨迹算法(支持C++/Python/易语言)[鼠标轨迹API简介]-猿说编程](https://winsdk.cn/wp-content/uploads/2024/11/image-3.png)








暂无评论内容