自己總結(jié)的,覺得能幫助初學(xué)者看透一些紛繁復(fù)雜的語法規(guī)則,理解C語言的真諦
第一次發(fā)布,不一定正確,歡迎討論、指正、補充
1. 表達式定律
任何能產(chǎn)生數(shù)值結(jié)果的運算、操作都可以作為表達式,并可以放到任何需要數(shù)值結(jié)果的地方,只要數(shù)值類型能夠匹配
常見的可以產(chǎn)生數(shù)值結(jié)果的運算和操作
- 算術(shù)、邏輯、位運算等
- ? :
- &、*等操作
- 有返回值的函數(shù)
常見的需要數(shù)值的地方有:
- 賦值
- 條件判斷
- 函數(shù)調(diào)用
2. 類型定律
任何類型都可以在任何需要類型的地方使用;用任何類型定義的變量都要占用內(nèi)存
已知特例
- 函數(shù)返回值不能定義為數(shù)組類型
常用類型
- 基本數(shù)據(jù)類型、指針、數(shù)組、結(jié)構(gòu)……
常見的需要類型的地方
- 定義變量
- 定義指針、數(shù)組和結(jié)構(gòu)
- 函數(shù)參數(shù)和返回值
- sizeof
3. 參數(shù)傳遞定律
函數(shù)調(diào)用時的參數(shù)傳遞永遠(yuǎn)都是傳值調(diào)用,把實參的值拷貝給形參
- 實參:調(diào)用者提供的參數(shù)
- 形參:函數(shù)定義的參數(shù)
- 基本數(shù)據(jù)類型無容置疑
- struct也無容置疑
- 指針作為參數(shù)時,把指針變量的內(nèi)容(就是其指向的內(nèi)存地址)做了拷貝
- 數(shù)組名作為參數(shù)時,把它等同于指針看待了