1. 表达式定律 任何能产生数值结果的运算、操作都可以作为表达式,并可以放到任何需要数值结果的地方,只要数值类型能够匹配。 常见的可以产生数值结果的运算和操作: 算术、逻辑、位运算等 ? : 、 & 、* 等操作 有返回值的函数 赋值 常见的需要数值的地方有: 赋值 条件判断 函数调用 2. 类型定律 任何类型都可以在任何需要类型的地方使用;用任何类型定义的变量都要占用内存。 已知特例: 函数返回值不能定义为数组类型 函数参数定义为数组类型,此时该参数不占用内存,而是共享函数调用者传入的数组空间 常用类型: 基本数据类型、指针、数组、结构…… 常见的需要类型的地方: 定义变量 定义指针、数组和结构 函数参数和返回值 sizeof 3. 参数传递定律 函数调用时的参数传递永远都是传值调用,把实参的值拷贝给形参。 实参:调用者提供的参数 形参:函数定义的参数 基本数据类型无容置疑 struct也无容置疑 指针作为参数时,把指针变量的内容(就是其指向的内存地址)做了拷贝 数组名作为参数时,把它等同于指针看待了 |