回楼上几位c初学者:
我真的很同情你们,同情你们被国内的垃圾教材毒害了。好了,静下心来看下面的内容:
如果你们去看国外的经典教材或c语言标准可以发现在讲到++和--运算符时会提到这是一个有副作用的操作符,因为这个表达式会改变变量的值。最好单独一行写++或--,不要嵌入到其他的表达式中,因为这样写不但不会改变程序的效率还可以提高可读性。如果一定要嵌入到其他表达式中,在该表达式之中不要再取该变量的值。原因是:
C标准规定++a先加一后取值,a++先取值后加一。在表达式中嵌入这种自增表达式时何时加一标准没有规定,对于标注没有规定的行为编译器可以作出自己的解释,所以不同的编译器会有不同的结果,所以这种表达式是没有意义的。你早上起床后是应该先刷牙后洗脸还是先洗脸后刷牙?哪种是正确的顺序?这个问题需要讨论吗?不同的人有不同的答案正如不同的编译器有不同的结果。
国内的垃圾教材作者通常是学谭浩强的书长大又没有责任心的人,谭浩强那个年代国内计算机水平落后,没几个人看过c标准,国内的程序设计书是用来考试而不是培养程序员的,喜欢出这种++--把学生搞迷糊显示作者水平,真正的程序员不会写这种程序。谭浩强不懂c标准在处理标准没有定义的语法时把Turbo C处理的结果当作唯一正确的答案,而今Turbo C已经退出软件开发工具行列了,这个古老的编译器的结果自然没有什么意义。国内教材通常是抄谭浩强的,每个学生都会被这种无聊的问题迷惑很长时间。如果你有精力把这种程序在不同的编译器中编译运行看看不同的编译器处理的差异。
版主说的话是有道理的,前人的经验是值得后人思考的,新手的身份不是给你做大爷的凭证,不要因为自己是新手心里不爽就给别人戴个“看不起新手”的大帽子狠批。有的菜鸟总是说“你不也是从菜鸟走过来的?”,菜鸟也分很多种,有的是可以长成大虾的菜鸟,有的是永远长不大的菜鸟。做菜鸟也要做有前途的受人准尊重的菜鸟,你是那一种鸟?
为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.