鱼C论坛

 找回密码
 立即注册
查看: 4779|回复: 7

求解释?本人新手,希望大哥大姐给我说说为什么?

[复制链接]
发表于 2012-12-6 21:53:00 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

void main()
{
    int i=8;
    printf("%d\n",++i);     /*输出值为9*/这个知道为什么等于9
    printf("%d\n",--i);     /*输出值为8*/这个也知道为什么等于8
    printf("%d\n",i++);     /*输出值为8*/这个就不知道为什么等于8了
    printf("%d\n",i--);     /*输出值为9*/这个就更不知道了
    printf("%d\n",-i++);    /*输出值为-8*/这个完全晕了
    printf("%d\n",-i--);    /*输出值为-9*/这个更晕
    getch();

}

求解释详细算法和步骤!
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-6 22:07:56 | 显示全部楼层
#include <stdio.h>

void main()
{
    int i=5,j=5,p,q;
    p=(i++)+(i++)+(i++);           
    q=(++j)+(++j)+(++j);            
    printf("%d,%d,%d,%d",p,q,i,j);    /*输出值为15,24,8,8*/这个小弟也不知道怎么算的!求各位大神给个解释啊!
    getch();
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-6 22:28:06 | 显示全部楼层
搞清++i 和 i++的区别就行了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-6 22:51:29 | 显示全部楼层
你在c/c++论坛里推荐主题   湮汐 [分享] C语言自增自减学习资料  讲的很好
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-7 20:28:14 | 显示全部楼层
第一个和第二个你懂了,就不说了,第三个因为是后缀++,所以先执行,后加1,所以第三个输出是8,而此时的i已经是9了,所以在输出第四个的时候,就是9,然后再执行第四个语句的--操作,也就是执行完第四局,i的值是8,后面的都一样,不说了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-7 20:29:53 | 显示全部楼层
至于第二道题,你知道了i++和++i的区别,就自然会了,总之记住,++i是先让i加1,然后执行相关语句,而i++是先执行相关语句,然后i再+1
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-7 21:51:43 | 显示全部楼层

谢谢·················
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-8 17:14:51 | 显示全部楼层
因为i一直在变化嘛, 除非每次执行完一句再赋值i重新等于8, 这样比较好理解嗯(←=V=
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-16 17:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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