为了账号安全,请及时绑定邮箱和手机立即绑定

自增自减不太懂

自增自减是指在完成运算所得值给下一步使用吗?

正在回答

2 回答

#include <stdio.h>
int main()
{
    int x = 0;
    printf("x=%d\n",x++);
    printf("x=%d\n",++x);
    return 0;
}

以上面这段代码为例,

int x=0;

定义了x的值为0

printf("x=%d\n",x++);

输出上面一行代码“x++”的运算结果,结果:x=0

为什么x=0呢?因为“x++”的运算规则是  先取值再运算  ,换成人话就是,先输出x的值:0,再去加1。虽然现在显示的是0,实际上他的值已经变成了1

printf("x=%d\n",++x);

这里再输出上面一行代码中“++x”的运算结果,结果:x=2,

为什么x=2呢?因为“++x”的运算规则是  先运算再取值  ,再换成人话就是,先计算x+1,再输出结果,

前面也说过,在执行过“printf("x=%d\n",x++);”这一行代码后,x已经变成了1,所以这时的x=1+1=2。


PS:我也是初学者,如果哪里说错了,请指出,一定虚心接受!

0 回复 有任何疑惑可以回复我~
#1

慕圣5972245 提问者

非常感谢!
2016-01-30 回复 有任何疑惑可以回复我~

i++是先取值再加1;

++i是先加1再取值;

比如:

int m=5,n;

//n=m++;

//n=++m;

第一种输出n就是5,但m=6;

第二种输出n就是6,m=6;

0 回复 有任何疑惑可以回复我~
#1

四叶草61ym

为啥子不是7安,不是上面m为6了啊,6+1=7都嘛
2016-11-13 回复 有任何疑惑可以回复我~
#2

Togepi 回复 四叶草61ym

⋯⋯⋯⋯因为我是分开写的,是讨论两种情况,如果按顺序的话,你说的是对的啊~
2016-11-13 回复 有任何疑惑可以回复我~
#3

四叶草61ym 回复 Togepi

我还是不懂
2016-11-20 回复 有任何疑惑可以回复我~
#4

Togepi

嗯,我感觉是我没讲清楚,假如有一个数x=3,分两种情况:①a=x++,你输出a就是3;②x=3,a=++x,输出a就是4
2016-11-20 回复 有任何疑惑可以回复我~
#5

Togepi 回复 四叶草61ym

快看回复
2016-11-20 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
C语言入门
  • 参与学习       926206    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

自增自减不太懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信