OpenEdv-开源电子网

标题: 今天看了c语言深度剖析有个问题求助一下 [打印本页]

作者: 老虎的菜    时间: 2014-5-19 17:07
标题: 今天看了c语言深度剖析有个问题求助一下
int i=3;
int a;
a=++i+++i+++i;
是a=(((++i)++)+(i++)+i)吗
还有a+++++b
是(((a++)++)+b)吗
求大神解答

作者: ofourme    时间: 2014-5-19 17:07
自增加++及自减少--只能与变量名结合,所以“a=++i+++i+++i;”是“a=(++i)+(++i)+(++i)的意思。但是,a的结果是12还是15,这个在标准里是未定义的,这个表达式有问题,千万不要这样写!!!
作者: shihantu    时间: 2014-5-19 19:14
如果是考试,好好看书,++的结合方向和优先级.

如果是自学,扔掉这本书.
作者: shihantu    时间: 2014-5-19 20:28
回复【3楼】ofourme:
---------------------------------
所以应该积极推行MCSRA C.
作者: 老虎的菜    时间: 2014-5-19 20:34
回复【3楼】ofourme:
---------------------- 
哦  谢谢了  明白了那a+++++b;就是(a++)+(++b)呗
作者: 老虎的菜    时间: 2014-5-19 20:35
回复【2楼】shihantu:
---------------------------------
谢谢 ,只是感兴趣他里面的一些小问题所以就拿来看看了。
作者: ilikerome    时间: 2014-5-19 20:53
回复【3楼】ofourme:
---------------------------------
学习了,之前俺也一直搞不清,原来是这么回事。
作者: ilikerome    时间: 2014-5-19 20:59
回复【4楼】shihantu:
---------------------------------
效果如何?
作者: 602647310    时间: 2014-5-22 13:14
那本书挺好的,很多可以借鉴。但我觉的这种钻牛角尖的问题就不用花时间去研究了,自己明白就好了,实际代码这样不好,会被骂死的。。
作者: 老虎的菜    时间: 2014-5-22 14:23
回复【9楼】602647310:
---------------------------------
嗯,明白,自己肯定不会这么写代码,估计也不会有人写代码,但是这题把许多问题都说明了,觉得一到这样的题,能看出来对++的理解多少。
作者: shihantu    时间: 2014-5-22 18:41
回复【10楼】老虎的菜:
---------------------------------
C/C++的精粹在设计模式,这些所谓的题只是舞文弄墨.

只能说,知道最好,不知道也无伤大雅,如果真想知道,马上翻资料又不会影响大局.
作者: 老虎的菜    时间: 2014-5-22 20:19
回复【11楼】shihantu:
---------------------------------
c是一门工具,是用来解决的问题,像这样出题我也是不赞成的,但是像这种许多人不屑一顾的题,我觉得他有他存在的道理,理解了这些会更利于理解程序。我觉得这样的题给那些会一些c语言有一些实战经验但基本功不扎实的人看会有挺好的效果。
作者: shihantu    时间: 2014-5-22 21:45
回复【12楼】老虎的菜:
---------------------------------
以下纯粹个人观点:

C的确是工具,但这种题目的意义仅仅有二,一是煞煞初学者的浮躁,二是显摆.不一定两者兼备,但遇到过第二种情况.

这种写法有如混乱大赛,可以作乐,但现阶段看不到实用之处.
作者: qq942266575    时间: 2014-5-22 22:21
神经病啊,谁会这么用。??
作者: 加速度    时间: 2014-5-31 10:59
看到这种题目,我就知道,冥冥之中,今天又遇见脑残了。。。
这么写有意义吗?!
不就省了几个括号,却死多了几千个脑细胞。
自己后期看的辛苦,别人看的也辛苦!
用的不谨慎还容易造成程序的BUG.调死你啊~
作者: 小海豚    时间: 2014-5-31 14:33
不必太钻牛角尖,写程序规范一下,就易懂了
作者: 老虎的菜    时间: 2014-6-1 17:57
回复【15楼】加速度:
---------------------------------
这种做法我估计机会很少有人会实际应用这么做。但是侧面反映着一些问题,如果你认为脑残 ,那你就觉得他存在有道理吗?  你知道他又卖了多少少本吗? 你会做吗?
作者: 加速度    时间: 2014-6-3 19:48
回复【17楼】老虎的菜:
---------------------------------
你看清楚主机发的题目好不好?
这++i++ 到底是先++i 还是 i++本来就取决于编译器,不同编译器的顺序是不同的,所以这个没有标准答案的。
我才不管他卖了多少本。。。误人子弟!你敢说你的做法就是对的?!
作者: 老虎的菜    时间: 2014-6-4 10:20
回复【18楼】加速度:
---------------------------------
请问++的结合方向是什么? 有些是编译器的问题 ,但是 c里面明确写了++的结合方向,++i++ 应该是++i 还是i++你去看看有没有唯一的答案。自己先把c学扎实了,再来讨论其他的。还有误人子弟这事,分人怎么看,他书里的这道题的意义不是让你写代码时这么用,目的是告诉你++的结合方向,还有贪吃法则,还有2楼所说的。如果你只是ctrl +c  和ctrl+v  在讨论这些 也就没什么意义了。
作者: jiutianshenjian    时间: 2014-10-11 12:47
8楼说得对。。。
作者: 老虎的菜    时间: 2014-10-11 13:13
回复【20楼】jiutianshenjian:
---------------------------------
谢谢你
作者: xouou_53320    时间: 2014-12-6 21:30
++i+++i+++i    没有这种写法




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4