自己总结的,觉得能帮助初学者看透一些纷繁复杂的语法规则,理解C语言的真谛
第一次发布,不一定正确,欢迎讨论、指正、补充
1. 表达式定律
任何能产生数值结果的运算、操作都可以作为表达式,并可以放到任何需要数值结果的地方,只要数值类型能够匹配
常见的可以产生数值结果的运算和操作
- 算术、逻辑、位运算等
- ? :
- &、*等操作
- 有返回值的函数
常见的需要数值的地方有:
- 赋值
- 条件判断
- 函数调用
2. 类型定律
任何类型都可以在任何需要类型的地方使用;用任何类型定义的变量都要占用内存
已知特例
- 函数返回值不能定义为数组类型
常用类型
- 基本数据类型、指针、数组、结构……
常见的需要类型的地方
- 定义变量
- 定义指针、数组和结构
- 函数参数和返回值
- sizeof
3. 参数传递定律
函数调用时的参数传递永远都是传值调用,把实参的值拷贝给形参
- 实参:调用者提供的参数
- 形参:函数定义的参数
- 基本数据类型无容置疑
- struct也无容置疑
- 指针作为参数时,把指针变量的内容(就是其指向的内存地址)做了拷贝
- 数组名作为参数时,把它等同于指针看待了