到底谁对啊
----------------解决方案--------------------------------------------------------
我认为这样的题目没有意思。不同的编译器会对这类表达式做出不同的编译有的自左向右也有的自右向左。具体的可以参见各个编译器的说明。考试中出现这样的题目是,没有任何意义的
我觉得在写程序过程中 不要出现这样的表达。要答案那就指定编译器然后去试验一下就行了
就研究语言语法,这类题目也是没有意义的
----------------解决方案--------------------------------------------------------
k=3;
b=k+(k++);
请问b的值是多少?
何解为 6 我上机试也是 6 就是不太懂
----------------解决方案--------------------------------------------------------
明白了..虽然 (k++) 有括号 但C编译系统仍然先算第二个K 对吗?
----------------解决方案--------------------------------------------------------
同意zinking的说法,在C++中这种是属于未定义的,具体要看编译器的,不知C中怎么定义的.
----------------解决方案--------------------------------------------------------
答案应该是6,6,7。我用c#验证过。第一个式子和第二个式子应该很好理解。第三个式子,应该如下分析:式子从左到右应该计算,++k应该是先自加后k的值是4,因为是从左到右计算,因此4+3=7;b的值是7。
----------------解决方案--------------------------------------------------------
楼上的有点搞笑啦,C#本来就和C/C++的标准有所不同
看到这么多人在“纠缠”于这个问题,于是用GCC编译了一下试试
结果为768
对于此类问题最好用比较符合C99标准的编译器啦,尽管大多数编译器不会完全符合标准
但是C99标准是事实上C语言最统一的标准了
----------------解决方案--------------------------------------------------------