搜索

看不出来函数调用中的求值顺序

查看数: 605 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-12-4 22:22

正文摘要:

在课本中给的方法如下 #include<stdio.h> void main() {         int i = 8;         printf("%d,%d,%d,%d\n", ++i, --i, i++, i--);       ...

回复

赵林 发表于 2017-12-9 16:10:29
换一个方式
写成四句printf,一句输出一个
4399APPLE 发表于 2017-12-5 18:08:47
AACZY 发表于 2017-12-5 16:40
#include
void main()
{

我们也不知道编译器到底是怎么处理的
4399APPLE 发表于 2017-12-5 18:08:26
AACZY 发表于 2017-12-5 15:57
那有方法使编译器的行为定义下来吗?

我们没有任何办法确定这个顺序
AACZY 发表于 2017-12-5 15:57:26
那有方法使编译器的行为定义下来吗?
4399APPLE 发表于 2017-12-5 12:04:43
AACZY 发表于 2017-12-4 22:35
但这完全看不出顺序,难不成是乱序( ̄_ ̄|||)

是的
没有任何办法知道是什么顺序
AACZY 发表于 2017-12-4 22:35:47
4399APPLE 发表于 2017-12-4 22:25
未定义行为
编译器有权决定执行的顺序
刚好啊哈 C 和 VS 决定的顺序一样而已

但这完全看不出顺序,难不成是乱序( ̄_ ̄|||)
4399APPLE 发表于 2017-12-4 22:22:30
未定义行为
编译器有权决定执行的顺序
刚好啊哈 C 和 VS 决定的顺序一样而已
快速回复 返回顶部 返回列表