最近一週學習了一下c語言,並且寫了個課設,記錄一下感悟
- c語言相對java基本上是處處皆指針,對於字符串的操作,數組的操作都是完全離不開指針的
- c語言的拷貝皆爲深拷貝(等號=也是深複製,而非引用傳遞),因爲本身就沒有什麼複雜數據類型,當結構體包含結構體時也是通過指針的方式引用。
- 雖然數組和指針都是地址,但是有一定區別,一些函數要求獲得數組的長度,因此不可以直接放入指針
- 指針如果你free以後,那麼就會輸出奇奇怪怪的東西
- c語言對於文件只有覆蓋和追加兩種寫入方式,因此文件小時可以採用新建文件重寫的方式
對於輸入 scanf的參數,要使用指針,float等不可指定數據格式
對於輸出printf的參數,不需使用指針,可以設定輸出數據格式
特殊函數:
strtok(char* a, const char* b)
將a按照b劃分開,第二次使用需要使用strtok(NULL,b)
注意點:①該函數會更改原字符串,在檢測到b的位置置換爲‘/0’結束符,這個時候直接輸出a就只是輸出結束符之前的內容了
②該函數會忽略開頭和結尾的b ,多個b放在一起時視爲一個b