鱼C论坛

 找回密码
 立即注册
查看: 4733|回复: 13

自增自减

[复制链接]
发表于 2012-12-20 15:54:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Ъγ:_小ツ雨oο 于 2012-12-20 18:46 编辑




#include <stdio.h>
void main()
{
int i;
i = 8;
printf("%d\n",i++);
    printf("%d\n",i++);
}

同样的代码,写了两次,结果就不一样了,求解释

QQ截图20121220185635.png
QQ截图20121220185548.png
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-20 16:39:22 | 显示全部楼层
# include <stdio.h>

int main (void)
{
        int a = 9;  
    printf("%d\n",++a);// ++a 表示+1 的意思 9+1 = 10
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-20 16:43:01 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-20 16:45:05 | 显示全部楼层
本帖最后由 づ綄镁の爱ヽ 于 2012-12-20 16:50 编辑

     i=8;
printf("%d\n",++i);  这个是等于9,我想是:先把i加一后输出,9
printf("%d\n",--i);    这个是等于8,可是为什么呢,

因为前面的i已经是9了 所以 自减后是8


其实你可以调试一下,看看执行过程是怎样的 就一目了然了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-20 16:51:14 | 显示全部楼层
第一个++i的时候     i已经是9了
第二次--i  也就是9-1了  你说应该等于几?
要是你再多一个--i的话  输出的结果就会等于你想要的结果(7)
  不知道你看明白了没有
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-20 17:06:35 | 显示全部楼层
i = 8
++i = 9 //此时i的值是9;
--i = 8//i = 9自减 = 8
这是我的理解!如果不对请见谅!
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-20 18:51:44 | 显示全部楼层
古井小调 发表于 2012-12-20 17:06
i = 8
++i = 9 //此时i的值是9;
--i = 8//i = 9自减 = 8

请在看一下我的题目,帮我回答一下,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-20 18:52:29 | 显示全部楼层
刺骨之剑 发表于 2012-12-20 16:51
第一个++i的时候     i已经是9了
第二次--i  也就是9-1了  你说应该等于几?
要是你再多一个--i的话  输出 ...

请在看一下我的题目,帮我回答一下,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-20 18:53:07 | 显示全部楼层
8612328 发表于 2012-12-20 16:39
# include

int main (void)

请在看一下我的题目,帮我回答一下,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-20 19:17:35 | 显示全部楼层
Ъγ:_小ツ雨oο 发表于 2012-12-20 18:53
请在看一下我的题目,帮我回答一下,谢谢了

i =8 ;
printf("%d",i++);  //这里的++是后置的,所以先输出i的值之后再加1,此时便是输出8//
printf("%d",i++); // 到这一步,i的值就变成9了,为什么呢?因为上面的printf语句结束之后,i的值就加了1,因为上面的++是后置的。//

不知道楼主看明白了木有?

i=8
i--      8       后置的不管他,先输出值之后再加。  
++i    8       前置的先加上1之后在输出。

就是这个道理。

评分

参与人数 1鱼币 +3 贡献 +3 收起 理由
Ъγ:_小ツ雨oο + 3 + 3 很不错! 虽然还有点不太懂,但是你讲解的我.

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-21 12:23:31 | 显示全部楼层
Ъγ:_小ツ雨oο 发表于 2012-12-20 18:52
请在看一下我的题目,帮我回答一下,谢谢了

其实有些问题也不必太纠结  人家怎么定义的东西  你只要按照他的思路 方法来就是的了  要是人家说1+1=0的话  你就按照他的套路来就是的  (你要是说1+1怎么会等于0  那这问题就太不好解释了  这是个比方……)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-21 12:33:15 | 显示全部楼层
#include <stdio.h>
void main()
{
int i;
i = 8;
printf("%d\n",i++);//此处i++相当于i,所以为8,因为i++是在使用完i之后再自增1
//此时i自增1为9
    printf("%d\n",i++);//此处i++相当于i,所以为9,因为i++是在使用完i之后再自增1
//此时i自增1为10
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-24 21:15:42 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-13 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表