C语言中的三大定律

来源:互联网 发布:嵌入式音响 知乎 编辑:程序博客网 时间:2024/04/30 03:57
 

 自己总结的,觉得能帮助初学者看透一些纷繁复杂的语法规则,理解C语言的真谛
第一次发布,不一定正确,欢迎讨论、指正、补充

   1. 表达式定律
  
   任何能产生数值结果的运算、操作都可以作为表达式,并可以放到任何需要数值结果的地方,只要数值类型能够匹配

   常见的可以产生数值结果的运算和操作
  
   算术、逻辑、位运算等
   ? :
   &、*等操作
   有返回值的函数

   常见的需要数值的地方有:
  
   赋值
   条件判断
   函数调用

   2. 类型定律
  
   任何类型都可以在任何需要类型的地方使用
  
   已知特例
  
   函数返回值不能定义为数组类型
   常用类型
  
   基本数据类型、指针、数组、结构……
   常见的需要类型的地方
  
   定义变量
   定义指针、数组和结构
   函数参数和返回值
   sizeof

   3. 参数传递定律
  
   函数调用时的参数传递永远都是传值调用,把实参的值拷贝给形参
  
   实参:调用者提供的参数
   形参:函数定义的参数
   基本数据类型无容置疑
   struct也无容置疑
   指针作为参数时,把指针变量的内容(就是其指向的内存地址)做了拷贝
   数组名作为参数时,把它等同于指针看待了