c语言:自增自减运算符的操作详解

博主在回忆c语言的基本知识时,突然发现自增自减运算符(--、++)这个知识点有些模糊不清,故博主为了给同为小白的同学们提供一些经验,特写下这篇文章。

首先,自增自减运算符共有两种操作方式。

比如,我先定义一个变量a,以“++”为例,共有“a++”、“++a”种操作方式。“下面我们在实际的代码中看一下。

#include
//自增自减运算符的测试
int main()
{
	int a = 21;
	int c;
	c = a--;
	printf("%d\n", c);
	a = 21;
	c = a++;
	printf("%d\n", c);
	a = 21;
	c = --a;
	printf("%d\n", c);
	a = 21;
	c = ++a;
	printf("%d\n", c);
	getchar();
}
运行后,很轻易的就可以得到输出结果:21、21、20、22。

由此可知,我们可以得到一个结论:诸如“a++”类自增自减运算符在变量之后的,进行操作时是先赋值,后运算;而“++a”类的操作则正是与此相反。


其次,我们来看一下上面代码中变量c的变化情况:

int main()
{
	int a = 21;
	int c;
	c = a++;
	printf("%d\n", c);
	c = a--;
	printf("%d\n", c);
	c = --a;
	printf("%d\n", c);
	c = ++a;
	printf("%d\n", c);
	getchar();
}
运行结果则变成了:21、22、20、21,。为什么会出现这种情况呢?

以c=a++为例,由上述结论可知,这个表达式实际上是先将a的值赋给c,这样c就等于21,而后续符号操作的则直接是a,所以经过这个表达式之后,a的值实际上变成了22。由此,则可以推出下面的一系列内容。

好了,讲述就到这里了。

这篇文章主要是针对c语言小白,各位大神还请借道哈,不要喷我,如果有错误还请帮忙指出,不胜感激。

本人也是小白一枚,愿与诸君共同进步,通向成神之路!!!

你可能感兴趣的:(C语言初学)