关于 a++ 与 ++a 解析

PS:再次感谢官方大大的推荐!另外最近有些忙,所以更新频率非常慢啦,但博主这也是为了保证博客内容更好嘛(手动狗头)

首先我们大家先通过

下面代码的运行结果来看下输出结果有什么不同

#include
int main()
{
	int i = 0, j = 0;
	i++;
	++j;
	printf("%d %d", i, j);//输出 1 1
	return 0;
}

似乎没有什么不同呀

都是进行自增1诶

那我们接着往下看这串代码

#include
int main()
{
	int i = 0, j = 0,x,y;
	x=i++;
	y=++j;
	printf("%d %d", x, j);//输出结果为 0 1
	return 0;
}

为什么会这样子是博主我写错结果了吗

当然不是的

原因如下

虽然 a++和++a 都属于自增运算符

区别是变量a的值进行自增的时候

a++是先进行取值,然后进行自增

++a是先进行自增,然后进行取值。

听起来有点绕

但就是酱紫

我们再来借助上面的代码详细说一下过程

int i = 0, j = 0,x,y;//这是上面的代码部分
	x=i++;
	y=++j;

我是分割线----------------------------------

a++其实就等效于

x=i;结果:x=0

然后进行     

i=i+1;结果:i=1

我是分割线----------------------------------

++a就等效于

y=j+1;结果:1

然后进行

j=j+1;结果:1

我是分割线----------------------------------

现在大家是不是觉得豁然开朗勒

那酱紫能帮到大家我就很开心啦

PS:同理适用与--a和a--哦

PS:PS:希望大家看了这篇文章后就懂得++a和a++了哦 就是酱紫 大家的支持是我的动力源泉 谢谢大家 拜拜xdm!(有错误欢迎私信我哦)

你可能感兴趣的:(c语言)