社区
C语言
帖子详情
新手提问,加加i和i加加的简单问题!
saya0769
2009-12-01 03:00:28
main()
{
int i=8;
printf("%d\n%d\n",++i,i++);
getchar();
}
这个答案是:10 8
main()
{
int i=8;
printf("%d\n%d\n",i++,++i);
getchar();
}
这个答案是:9 9
为什么呢??不明白啊!
...全文
835
31
打赏
收藏
新手提问,加加i和i加加的简单问题!
main() { int i=8; printf("%d\n%d\n",++i,i++); getchar(); } 这个答案是:10 8 main() { int i=8; printf("%d\n%d\n",i++,++i); getchar(); } 这个答案是:9 9 为什么呢??不明白啊!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
songyanshuai
2009-12-02
打赏
举报
回复
i++不能做左值,++i可以,其他的加括号就行了,没必要那么写
liujiaji
2009-12-02
打赏
举报
回复
[Quote=引用 28 楼 bobo364 的回复:]
引用 15 楼 liujiaji 的回复:
楼主稍等片刻结贴,有更好的例子:
i = 8;
printf("%d\n",++i);//此时i的值是8,先自加1,然后输出,因此输出的是9,i的值也是9.
printf("%d\n",--i);//此时i的值是9,先自减1,然后输出,因此输出的是8,i的值也是8.
printf("%d\n",i++);//此时i的值是8,这里是先输出后自加1,所以输出的是8,但i的值9.
printf("%d\n",i--);//此时i的值是9,这里是先输出后自减1,所以输出的是9,但i的值8.
printf("%d\n",-i++);//此时i的值是8,这里是先输出,注意:这里的'-'表示负号运算,因此先打印-i的值即-8,但这
//并不改变i的值,所以i自加1,所以i的值是9.
printf("%d\n",-i--);//此时i的值是9,这里是先输出,注意:这里的'-'表示负号运算,因此先打印-i的值即-9,但这
//并不改变i的值,所以i自减1,所以i的值是8.
}
希望你能明白和提高,呵呵
他所说的并不是单个i,而是多个,明白
[/Quote]
我操,我连题目都看不清奥,即把多嘴。
bobo364
2009-12-02
打赏
举报
回复
[Quote=引用 23 楼 lovesi3344 的回复:]
这种帖可以说是月经贴
我建议这种问题别讨论了
根本没有答案
不同的编译器有不同的答案
而编译器也是人写的
因为编译器是人写的
[/Quote]
很好吗,天天有天天接分
bobo364
2009-12-02
打赏
举报
回复
[Quote=引用 15 楼 liujiaji 的回复:]
楼主稍等片刻结贴,有更好的例子:
i = 8;
printf("%d\n",++i);//此时i的值是8,先自加1,然后输出,因此输出的是9,i的值也是9.
printf("%d\n",--i);//此时i的值是9,先自减1,然后输出,因此输出的是8,i的值也是8.
printf("%d\n",i++);//此时i的值是8,这里是先输出后自加1,所以输出的是8,但i的值9.
printf("%d\n",i--);//此时i的值是9,这里是先输出后自减1,所以输出的是9,但i的值8.
printf("%d\n",-i++);//此时i的值是8,这里是先输出,注意:这里的'-'表示负号运算,因此先打印-i的值即-8,但这
//并不改变i的值,所以i自加1,所以i的值是9.
printf("%d\n",-i--);//此时i的值是9,这里是先输出,注意:这里的'-'表示负号运算,因此先打印-i的值即-9,但这
//并不改变i的值,所以i自减1,所以i的值是8.
}
希望你能明白和提高,呵呵
[/Quote]
他所说的并不是单个i,而是多个,明白
时刻准备中
2009-12-02
打赏
举报
回复
可以结贴了
yangxxxxxx66
2009-12-01
打赏
举报
回复
正如2楼所说,讨论这个没意义
fdget
2009-12-01
打赏
举报
回复
你可以认为printf()函数的执行是自右向左.
jernymy
2009-12-01
打赏
举报
回复
[Quote=引用 23 楼 lovesi3344 的回复:]
这种帖可以说是月经贴
我建议这种问题别讨论了
根本没有答案
不同的编译器有不同的答案
而编译器也是人写的
因为编译器是人写的
[/Quote]
支持
lovesi3344
2009-12-01
打赏
举报
回复
这种帖可以说是月经贴
我建议这种问题别讨论了
根本没有答案
不同的编译器有不同的答案
而编译器也是人写的
因为编译器是人写的
hmg25
2009-12-01
打赏
举报
回复
mark,以前没注意,现在学习啦
mstlq
2009-12-01
打赏
举报
回复
[Quote=引用 14 楼 bobo364 的回复:]
引用 3 楼 thefirstz 的回复:
自右向左进栈:
printf("%d\n%d\n",++i,i++); 先是输出8,然后i变为9,再++i,输出10
printf("%d\n%d\n",i++,++i); 先++i输出9,然后i++,输出9
经典的题目,终于有人说明白了,原来是堆栈原理,记得刚完c的时候,没上数据结构,不明白堆栈,只能从左到右,原来如此,学习了
[/Quote]
压栈顺序跟计算顺序没有必然联系(可以算一个压一个,也可以批量算好然后再压,依赖编译器)……
爱思考是好的,不过小心走火入魔……
liujiaji
2009-12-01
打赏
举报
回复
回帖就是回答别人问的问题被,就算楼主没给分,我也能有吗?是这个意思不?
zhengjiankang
2009-12-01
打赏
举报
回复
[Quote=引用 18 楼 liujiaji 的回复:]
引用 17 楼 z569362161 的回复:
跟计算顺序有关拉.
还有我只差5分就两个小三角了,能不能给5 分啊!谢谢!
不是吧,你怎么还差5分呢,刚才不是有给你5分的吗?
我想问问你,我的可用分没了,怎么才能有啊?
[/Quote]
每天回帖可得10分可用分
liujiaji
2009-12-01
打赏
举报
回复
[Quote=引用 17 楼 z569362161 的回复:]
跟计算顺序有关拉.
还有我只差5分就两个小三角了,能不能给5 分啊!谢谢!
[/Quote]
不是吧,你怎么还差5分呢,刚才不是有给你5分的吗?
我想问问你,我的可用分没了,怎么才能有啊?
z569362161
2009-12-01
打赏
举报
回复
跟计算顺序有关拉.
还有我只差5分就两个小三角了,能不能给5 分啊!谢谢!
caicai999
2009-12-01
打赏
举报
回复
虽然明白,但是以前就没有从堆栈原理来想这个问题。
liujiaji
2009-12-01
打赏
举报
回复
楼主稍等片刻结贴,有更好的例子:
i = 8;
printf("%d\n",++i);//此时i的值是8,先自加1,然后输出,因此输出的是9,i的值也是9.
printf("%d\n",--i);//此时i的值是9,先自减1,然后输出,因此输出的是8,i的值也是8.
printf("%d\n",i++);//此时i的值是8,这里是先输出后自加1,所以输出的是8,但i的值9.
printf("%d\n",i--);//此时i的值是9,这里是先输出后自减1,所以输出的是9,但i的值8.
printf("%d\n",-i++);//此时i的值是8,这里是先输出,注意:这里的'-'表示负号运算,因此先打印-i的值即-8,但这
//并不改变i的值,所以i自加1,所以i的值是9.
printf("%d\n",-i--);//此时i的值是9,这里是先输出,注意:这里的'-'表示负号运算,因此先打印-i的值即-9,但这
//并不改变i的值,所以i自减1,所以i的值是8.
}
希望你能明白和提高,呵呵
bobo364
2009-12-01
打赏
举报
回复
[Quote=引用 3 楼 thefirstz 的回复:]
自右向左进栈:
printf("%d\n%d\n",++i,i++); 先是输出8,然后i变为9,再++i,输出10
printf("%d\n%d\n",i++,++i); 先++i输出9,然后i++,输出9
[/Quote]
经典的题目,终于有人说明白了,原来是堆栈原理,记得刚完c的时候,没上数据结构,不明白堆栈,只能从左到右,原来如此,学习了
The_facE
2009-12-01
打赏
举报
回复
见鬼,是谁最先研究这种东西的?
Debugcool
2009-12-01
打赏
举报
回复
printf的参数是后面到前面依次放到栈中的。。。。
加载更多回复(11)
分享iphone开发的好网站,希望大家也能提供一些分享下
1、http://developer.apple.com/iphone/library
这个是官方的代码实例
2、www.cocoachina.com
这个网站比较适合初期开发者,上面的版主之类的也比较热心,一般的
问题
都会提供帮助
3、http://www.tipb.com/
国外的一些文章博客,介绍iphone的特性和开发
4、http://www.iphonedevsdk.com/forum/
iPhoneDev SDK<
分享iphone开发的好网站
1、http://developer.apple.com/iphone/library这个是官方的代码实例2、www.cocoachina.com这个网站比较适合初期开发者,上面的版主之类的也比较热心,一般的
问题
都会提供帮助3、http://www.tipb.com/国外的一些文章博客,介绍iphone的特性和开发4、http://www.iphonedevsdk.com/
【引用】iphone开发的好网站
分享iphone开发的好网站,希望大家也能提供一些分享下 收藏 1、http://developer.apple.com/iphone/library 这个是官方的代码实例 2、www.cocoachina.com 这个网站比较适合初期开发者,上面的版主之类的也比较热心,一般的
问题
都会提供帮助 3、http://www...
【项目经验】分享iphone开发的好网站,希望大家也能提供一些分享下
1、http://developer.apple.com/iphone/library 这个是官方的代码实例 2、www.cocoachina.com 这个网站比较适合初期开发者,上面的版主之类的也比较热心,一般的
问题
都会提供帮助 3、http://www.tipb.co
iphone开发相关的网站
首先声明一下,apple的官方文档是最重要的,一下网站只是本人学习过程中存在
问题
时,所寻找的相关帮助网页,有时间的话,对每一个网页写一些注释吧sqllite相关http://iwins.blog.51cto.com/735853/211747http://linglong117.blog.163.com/blog/static/277145472009111403520676 /htt...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章