15.C语言 自加自减运算符(++i/i++)

最后更新于:2020-06-02 20:52:18

除了前面文章讲解的逻辑运算符/三目运算符/逗号表达式C语言中自加++/自减--运算符也是开发中使用比较频繁的一种运算符;在实际编写中,尤其对初学者或者很久没接触它的,会对它的原理和运算结果产生混淆,接下来做详细辨析。

 

一.C语言自加++/自减--运算符简介

C语言自加++/自减--运算符实际就是对变量本身做+1或者-1操作,例如:

/************************************************************************/
/*@文件名      : i++.cpp                                                       
/*@日  期      : 2020/5/9 21:52
/*@作  者      : 猿说编程 
/*@公众号      : 猿说编程
/*@博客        : www.shuopython.com
/*@描述        : C语言教程 - 自增/自减运算符(i++/++i/--i/i--)
/************************************************************************/

#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++.cpp                                                       
/*@日  期      : 2020/5/9 21:52
/*@作  者      : 猿说编程 
/*@公众号      : 猿说编程
/*@博客        : www.shuopython.com
/*@描述        : C语言教程 - 自增/自减运算符(i++/++i/--i/i--)
/************************************************************************/

#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++),后自增先进行其他操作,再进行自增运算;

 

 

 

猜你喜欢:

1.安装 Visual Studio 2015

2.C语言逻辑运算符

3.C语言三目运算符

4.彻底卸载 Visual Studio 2008

5.彻底卸载 Visual Studio 2013/2015

 

转载请注明猿说编程 » C语言教程 » C语言自加自减运算符(++i和i++)



技术交流、商务合作请直接联系博主扫码或搜索:猿说编程

python/C++教程

猿说编程微信公众号 扫一扫关注