logo
预览版
标准版
您当前访问的是 喵宅苑 MewoGarden × 技术宅II 预览版网页,若要正常使用功能请戳我前往标准版
帖子对应的标准版页面请点击帖子下方[→标准版]按钮
ly110193

本帖最后由 ly110193 于 2012-9-23 09:27 编辑

附原题

#include <stdio.h>

main()

{ int a,b;

a=5;

b=++a*--a;

printf("%d\n",b);

}

求结果为____(答案b为25 )

【查看更多内容请登录哈】

Evanue

LZ

b=++a*--a;

b = (++a) * (--a) ;

b = (表达式1) * (表达式2) ;

代码肯定先执行 表达式1和表达式2 的乘法运算

但是先计算 表达式1的值还是表达式2的值 则取决于编译器

废话就不多说 你自己看到起整就是了

cao884203

这种编程风格是适合于卖弄,对于提高程序的健壮性,可读性和运行效率没有一点帮助。。 不同编译器优化代码后确实不尽相同,如果想明白具体怎么操作,可以看一下汇编代码。或者寄存器里具体数值。真蛋疼

ly110193

秋声赋 发表于 2012-9-22 20:15 【链接登录后可见】

看到这种题就烦

明明是一个用来方便编程的东西

居然被天朝的老师 弄得和奥数一样麻烦

哦 頓悟了呢 確實挺煩的

xushine

ly110193 发表于 2012-9-22 14:20 【链接登录后可见】

其實 加不加不影響的 試過了 ++--的優先級高於等關係運算符

你换宝蓝的编译器试试

秋声赋

看到这种题就烦

明明是一个用来方便编程的东西

居然被天朝的老师 弄得和奥数一样麻烦

你把握那一点就行了 ++a是先加后用 a++是先用后加

我看你的问题应该是倒数第二个不能理解

他那个a--之后 a的值并没有变化就执行++a 算出来a的值 是6 再算a*a=6*6=36 然后再是算

【查看更多内容请登录哈】

ly110193

xushine 发表于 2012-9-22 11:08 【链接登录后可见】

建议规范代码 加上括号

其實 加不加不影響的 試過了 ++--的優先級高於等關係運算符

ly110193

xushine 发表于 2012-9-22 11:08 【链接登录后可见】

建议规范代码 加上括号

其實 加不加不影響的 試過了 ++--的優先級高於等關係運算符

风音洛洛

加群118213378问吧。

那群傲娇货明明知道答案就是懒得上论坛来回答

问里面的那两个管理员E和X

xushine

建议规范代码 加上括号