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