首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

《C 專家編程》閱讀筆記(二):這不是 Bug,而是語言特性

     編輯:關於C語言

第二章核心觀點

  • malloc(strlen(str)) 幾乎總是錯,應為 malloc(strlen(str)+1)(留給 \0)。
  • const int 在 C 中不是真常量,不能用作 switch case 標簽(C++ 可以)。
  • break 僅跳出最近的循環或 switch。
  • sizeof(類型) 必須加括號,sizeof 變量 可不加。
  • 建議只記兩個優先級:* / > + -,其餘一律加括號。
  • 結合性:賦值運算符右結合,單目運算符右結合。
  • 返回局部數組指針是經典錯誤:函數結束棧幀銷毀,指針成懸空指針。

經典錯誤示例

char *f() {
    char buf[10];
    strcpy(buf, "abcdefg");
    return buf;  // 錯誤:返回棧內存地址
}

摘自 CodeBlog

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved