百科问答小站 logo
百科问答小站 font logo



C 语言中,x += 5 == 4 是什么意思? 第1页

  

user avatar   zai-hui-shou-wo-xin-yi-jiu-28 网友的相关建议: 
      

你学的这个不是C语言,而是谭语言。高校各专业的必备课程。学生普遍依靠背题通过期末考试。

号称计算机劝退第一人,不是让你学会,而是让你学不会,凭实力阻挡了无数青年入门计算机。避免了学生都去做计算机,没人去做别的行业工作这种情况。

配合Dos系统下的Turbo C,可以映衬的满脸发蓝,学习效果更佳。


user avatar   miloyip 网友的相关建议: 
      

看到很多答案吐嘈这个问题本身,我却认为,这是个很正常、定义清楚的问题。首先回答一下。


C语言在一个表达式中,遇到多个运算符的时候,要考虑优先级(precedence)和结合方向(associativity)去判断怎样求值。举例a op1 b op2 c 有两种可能性

  1. (a op1 b) op2 c
  2. a op1 (b op2 c)

如果 op1 的优先级较 op2 高,那么其语意就是第 1 种情况。

如果 op1 的优先级较 op2 低,那么其语意就是第 2 种情况。

如果 op1 和 op2 的优先级相同,那就要取决于结合方向。结合方向是「左至右」或「右至左」。例如,=(赋值运算符)的结合方向为「右至左」,所以:

a = b = c 的语意为 a = (b = c)

-(二元减运算符) 的结合方向为「左至右」,所以:

a - b - c 的语意为 (a - b) - c

C 语言运算符的优先级和结合方向在一般的入门编程书籍都会提到,也可参考 C 运算符优先级

对于问题,+= 的优先级是 14(差不多是最低),== 是 7,那么 == 会优先于 +=,所以:

x += 5 == 4 的语意为 x += (5 == 4)

因为 5 == 4 为假,求值结果为 0,所以该表达式又等于 x += 0

关于回答的部分结束。


至于有答案说到,学这种东西有什么用,编程不要这么写,我说一下愚见。

除为了功课、考试,要懂得答这种问题外,我觉得,在学习编程时,上述的优先级和结合方向等编程语言概念是应该要知道的。学会了,接触其他编程语言时,看一下它有没有这样的表,就能快速学习。当然,如果将来要学习编译原理,就更加知道编程语言的设计所要考虑的东西,以至如何把文本转成语法树等知识。

在实际应用中,学习了一些奇奇怪怪的东西也并不一定要写出来,但读懂是需要的。有时候,我们也会看到自己或其他人不小心写错了,做成 bug,如果看也看不出问题就是个问题。

C 语言标准是数百页的文档,大部分人不会仔细研究每个细节,我也不在例外。一个工程师可以说某些东西没用,可能因为他在工作中没用到。

知之为知之,不知为不知,是知也。

我觉得没有用的东西,只是一种个人的评价,没有普遍性。这不影响一个问题是否值得问,是否值得有一个详尽的答案,该答案是否让问者及其他人能获得收益。


user avatar   pansz 网友的相关建议: 
      

其实从编程的角度,这种设计是需要严格禁止的。

换句话说:外表相似但实质表现不同的函数,我们需要把它的接口或者名称有意做得不同,避免误用。

所以:这个商品的设计师,它肯定不懂编程。

如果是我,可能会刻意的改变USB插座的位置布局,让它看起来长得不一样。——至少改变一下USB插口的颜色。

--

老插线板名义上是 5V2A 的 10W 插线板,实际上是单口输出最大2A,多口同时输出的情况下,它的实际表现大约是 5V1A,也就是苹果那个万年诟病充电头的水平。——换句话说,旧插线板的USB接口,几乎是没有什么用处的鸡肋。

新插线板,号称单口27W,多口的情况下肯定会缩水,但我猜测至少QC3.0快充是可以用的。相比旧板子应该说是从协议层面有了很大进步。一个典型的例子是接无线充电器不需要浪费充电头了。

解释一下:小米目前的无线充是 30W,需要30W的充电头,但商城只有 18W 跟 65W 的充电头出售,小米商城根本没有适配无线充的 30W 充电头。如果插这个接线板,大概能当 27W 用吧?




  

相关话题

  编译器是如何编译自己的? 
  我有个同学说C语言太低级了,没有易语言强大好用。请问我该如何反驳? 
  C 语言自带函数返回值为指针类型的数组为什么不需要释放内存? 
  c语言中的sizeof()是如何分辨数组名和指针的? 
  一条C语言语句不一定是原子操作,但是一个汇编指令是原子操作吗? 
  假如用汇编语言重制某游戏或者软件能否降低 CPU 性能损耗? 
  为什么要有指针? 
  c中struct 为什么可以在数据结构这样用? 
  相比其他语言,C、C++究竟快在哪里? 
  怎么解决TCP网络传输「粘包」问题? 

前一个讨论
今年刚考上机械研究生,想着混个毕业,自学三年java毕业转行可行吗?
下一个讨论
西北工业大学航空航天大类准大一新生,听说专业毕业薪资不行,性价比不高,该怎么做?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利