wap网站建设策划方案,10_10_设计公司网站设计,网站cms建设,毕节金海湖新区城乡建设局网站这次不只是C语言很麻拐#xff0c;是所有编程语言都很麻拐了。 赋值和比较是编程语言最基本的操作之二#xff0c;C和所有类C语言都使用“”和“”来分别表示赋值和比较。 数学上等号“”是个单一的概念#xff0c;含义是“相等”#xff0c;左右两边是等价的#xff0c;很… 这次不只是C语言很麻拐是所有编程语言都很麻拐了。 赋值和比较是编程语言最基本的操作之二C和所有类C语言都使用“”和“”来分别表示赋值和比较。 数学上等号“”是个单一的概念含义是“相等”左右两边是等价的很像编程语言的比较。但数学上写“x.....”的时候当然还是两边是等价的但很有一些“赋值”的意思。所以这个“”直觉上既可以是比较又可以是赋值但是编程语言不能这么混乱必须区分开啊于是就用“”来表示比较“”只用作赋值。 这想法本来是不错的区分开了嘛应该就没有麻烦了。 问题是人脑子里面的习惯不会轻易改变于是“”误敲成“”就成了BUG之源。每个初学者都一定犯过很多次少打一个等号的错误反过来的情形也有。 历史已经如此想改变现状恐怕不可能了。除了在if条件里把常量写在“”的左边也没什么别的好办法。 撇开C语言和类C语言的现实有没有别的语言更好地解决了这个问题 有啊见过“:”算符吗一些编程语言、脚本、伪指令用这个算符表达“赋值”这样就完全避开了脑子里的固有习惯当然缺点是要多敲很多字符因为赋值太常用了。 还有别的思路吗我有一个啊为什么允许在条件判断里赋值呢如果最初的编译器加上这条规则不是什么麻烦都没有了吗 条件判断里赋值是个非常不合逻辑的事情出于性能考虑当然可以这么做但是这会妨碍理解啊。赋值顺手做条件判断是硬件支持的CPU指令里包括运算结果为零或非零就跳转的指令非常常用靠近硬件是C语言的优势也是劣势——汇编语言本来就是违反直觉的。 现在最先进的编译器已经能对这种条件里面赋值的情况做出警告了吧 这里是结束