C语言中的一些反智设计

所谓反智,是指与我们日常习得的知识有冲突的处理方式。C语言这么设计根本的理由是节省代码的容量!

  • 递增、递减:i++, ++i, i--, --i
    • i = i++ + ++i - --i - i--
    • 请问 i=?
    • 副作用导致算术运算的结合律不成立!
    • Evaluation Order
  • 加上:i+=e
  • 赋值与相等:v=e vs. a==b
  • 赋值语句表达式:(v = e)
    • ((v = e)==b)是什么意思?
  • 逗号表达式:e1, e2;
  • 条件表达式:a>b?a:b
  • 还有啥?
  • ...

 如何写出等价的表达式?

TIPS:

  • 避免不同类型的表达式嵌套!
  • 禁止有副作用的表达式嵌套使用!

DEGUB

CS50IDE平台、VSCode

  • 1,利用printf
  • 2,利用平台提供的功能

 

 

You have no rights to post comments