24小时热门版块排行榜    

查看: 1205  |  回复: 12

lixiang0

木虫 (著名写手)

首先是符号的优先级,左++最高,因此a=4,然后是+号,加起来16,付给a,结果16。至于为什么是11,我不理解了

[ 发自小木虫客户端 ]
11楼2014-09-15 21:42:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

清新俊逸

木虫 (正式写手)

引用回帖:
4楼: Originally posted by 刘畅的用户名 at 2014-09-13 12:37:20
我在linux 下编译的结果也是11,当(++a)a的个数分别为 1,2,3,4,5,6,7时,结果分别为1,4,7,11,16,22,29

窃以为,正规的程序就不应该这么写,会造成众多Bug,建议大学课堂上都教学生尽量不要用++--之类的东西。
我在linux下,
gcc、g++编译,结果11
icc、icpc编译,结果10
pgcc、pgc++、pgcpp编译,结果16

[ 发自手机版 http://muchong.com/3g ]
12楼2014-09-15 22:38:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fhh2626

木虫 (正式写手)

引用回帖:
9楼: Originally posted by 铭心刻骨 at 2014-09-15 20:35:05
那什么是C标准中定义的语言呢?这个有明确规定吗?...

有的,现在最新的标准是C2011,不过广泛使用的是C99

我比较熟悉的是C++,但是如果我没有记错的话,C标准中没有定义++a作为左值的行为,所以这个表达式根本就不是C语言,编译器自然可以给出任何不确定的结果,但是一个好的编译器应该对这个语句报错

[ 发自手机版 http://muchong.com/3g ]
13楼2014-09-16 16:22:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 铭心刻骨 的主题更新
信息提示
请填处理意见