自己总结的,觉得能帮助初学者看透一些纷繁复杂的语法规则,理解C语言的真谛 如有不正确的,欢迎各大软件设计师指正、补充
% N+ H# o3 P. W( |$ Q 1. 表达式定律
" w( v. `: L# e- o 任何能产生数值结果的运算、操作都可以作为表达式,并可以放到任何需要数值结果的地方,只要数值类型能够匹配
( C. q% y/ `# g: h 常见的可以产生数值结果的运算和操作 $ T- l* { _2 {! ^+ ~. i
算术、逻辑、位运算等
2 v/ t: J/ z: X. j X ? : &、*等操作
1 Y$ u% i6 O6 H+ o; U5 z7 e3 R 有返回值的函数 " K$ g2 ?, G4 N; q- c- Z/ g
常见的需要数值的地方有: ; G$ A; T7 q. W2 M3 R
赋值 0 A* w" h1 U# C0 \$ y! @! C
条件判定
* g; G( X8 e1 H% [ 函数调用
/ H5 Y4 C! L7 T; B1 v. _0 } 2. 类型定律
, A- m: z* @& g' m* L 任何类型都可以在任何需要类型的地方使用 ) w0 J% o- i5 n1 E
已知特例
+ e% |% J$ @ x1 Y4 ?1 I 函数返回值不能定义为数组类型
/ v1 a3 G- g& \# F8 @ 常用类型
- i; Q0 h P B3 ~9 D 基本数据类型、指针、数组、结构…… 4 e, e: g5 u# a. s
常见的需要类型的地方 5 h/ e( E$ n* g) B2 e1 d: N! o
定义变量 . n ]8 S7 h/ I4 z2 ^
定义指针、数组和结构 0 f& C' b: i3 L
函数参数和返回值
& G* O( u& U. |' ~ sizeof $ U/ V" r* C4 P
3. 参数传递定律 0 B& t$ s% e, s h: G/ y5 N
函数调用时的参数传递永远都是传值调用,把实参的值拷贝给形参 ! S4 R/ K) k8 O& c1 T
实参:调用者提供的参数
* b; n+ V4 L& K6 q* a3 R* E 形参:函数定义的参数
& p* Z3 D! a! U6 {% q& s( q, b 基本数据类型无容置疑 % h% R0 J% C! ~& n3 f
strUCt也无容置疑 + E- Z( c. ?, ^
指针作为参数时,把指针变量的内容(就是其指向的内存地址)做了拷贝
* b' m$ g) A$ J 数组名作为参数时,把它等同于指针看待了 |