免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3417 | 回复: 25
打印 上一主题 下一主题

[C] C语言高手进 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-10-17 15:45 |只看该作者 |正序浏览

  1. #include <stdio.h>;
  2. int main(void){
  3.         int i = 7, j = 7;
  4.         int result0 = (++i)+(++i)+(++i);
  5.         int result1 = (++j)+(j++)+(++j);
  6.         printf("%d\n%d\n", result0, result1);
  7. }

复制代码

程序输出结果为
28
25
请教为何???

论坛徽章:
0
26 [报告]
发表于 2003-10-25 10:38 |只看该作者

C语言高手进

ANSI C中特别指出这是由实现决定的,你再试试a=i++

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
25 [报告]
发表于 2003-10-24 22:46 |只看该作者

C语言高手进

[quote]原帖由 "kunrong"]老谭?我也想找他,但是不知道上哪找![/quote 发表:

unicorns 就是谭老师的马甲。

论坛徽章:
0
24 [报告]
发表于 2003-10-24 18:53 |只看该作者

C语言高手进

原帖由 "kunrong" 发表:


很遗憾!我竟然找不到老谭的书了!哎。。。。


老谭的书很好吧!!!

我看不怎么样,授课老师比较重要。。。

至于计算机类(中文版)的书吗?都源自一本,没有本质的区别。
多看些英文翻译版或英文版的会比较好!!!

哈哈哈:::::::::::::我喜欢英文翻版的C++

论坛徽章:
0
23 [报告]
发表于 2003-10-23 17:05 |只看该作者

C语言高手进

[quote]原帖由 "bjchenxu"]建议封贴,老谭说过,这种写法是要不得的[/quote 发表:


很遗憾!我竟然找不到老谭的书了!哎。。。。

论坛徽章:
0
22 [报告]
发表于 2003-10-23 15:24 |只看该作者

C语言高手进

原帖由 "whao" 发表:
程序输出结果为
28
25
请教为何???



可以将程序
#include <stdio.h>;
int main(void){
        int i = 7, j = 7;
        int result0 = (++i)+(++i)+(++i);
        int result1 = (++j)+(j++)+(++j);
        printf("%d\n%d\n", result0, result1);
}
改写成,如下:

#include <stdio.h>;
int main(void){
        int i = 7, j = 7;
        int result01=++i; int result02=i+(++i); int result03=i+(++i);
        int result11=++j; int result12=j+(j++); int result13=j+(++j);
        printf("%d\n%d\n%d\n",result01,result02,result03);
        printf("%d\n%d\n%d\n",result11,result12,result13);
}

这样不就可以看出是什么原因了。

论坛徽章:
0
21 [报告]
发表于 2003-10-23 09:45 |只看该作者

C语言高手进

原帖由 "stevenyi" 发表:
(++i)+(++i)+(++i)  =>;( (++i)+(++i) ) + (++i)
(++j)+(j++)+(++j) =>;( (++j)+(j++) ) + (++j)

说的不错,这个编译器应该是从左到右的规则

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
20 [报告]
发表于 2003-10-22 17:58 |只看该作者

C语言高手进

建议封贴,老谭说过,这种写法是要不得的

论坛徽章:
0
19 [报告]
发表于 2003-10-22 17:10 |只看该作者

C语言高手进

这种问题没有任何意义,如果我们的程序员这么编程,菲被k一顿不可

论坛徽章:
0
18 [报告]
发表于 2003-10-22 17:01 |只看该作者

C语言高手进

我试了一下, 结果是i = 10,  j = 9.
怪!
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP