買這商品的人也買了...
-
$420$332 -
$650$514 -
$281進軍硅谷-程序員面試揭秘
-
$280$218 -
$360$284 -
$480$374 -
$400$400 -
$699$594 -
$490$387 -
$580$458 -
$403Laravel 框架關鍵技術解析
-
$520$411 -
$360$284 -
$480$379 -
$296區塊鏈: 從數字貨幣到信用社會
-
$580$458 -
$580$493 -
$580$458 -
$800$600 -
$800$600 -
$650$553 -
$450$383 -
$380$323 -
$480$379 -
$420$332
相關主題
商品描述
<內容介紹>
《C語言深度解剖:解開程序員面試筆試的秘密(第2版)》由作者結合自身多年嵌入式C語言開發經驗和平時講解C語言的心得體會整理而成,其中有很多作者獨特的見解或看法。由於並不是從頭到尾講解C語言的基礎知識,所以《C語言深度解剖:解開程序員面試筆試的秘密(第2版)》並不適用於C語言零基礎的讀者,其內容要比一般的C語言圖書深得多、細緻得多。其中有很多問題是各大公司的面試或筆試題。第2版中新增加了部分編程規範的內容。
<目錄>
第1章關鍵字
1.1最寬宏大量的關鍵字——auto
1.2最快的關鍵字——register
1.2.1皇帝身邊的小太監——寄存器
1.2.2使用register修飾符的註意點
1.3最名不符實的關鍵字——static
1.3.1修飾變量
1.3.2修飾函數
1.4基本數據類型——short、int、long、char、float、double
1.4.1數據類型與“模子”
1.4.2變量的命名規則
1.5最冤枉的關鍵字——sizeof
1.5.1常年被人誤認為函數
1.5.2 sizeof(int)* p表示什麼意思
1.6 signed、unsigned關鍵字
1.7 if、else組合
1.7.1 bool變量與“零值”進行比較
1.7.2 float變量與“零值”進行比較
1.7.3指針變量與“零值”進行比較
1.7.4 else到底與哪個if配對呢
1.7.5 if語句後面的分號
1.7.6使用if語句的其他註意事項
1.8 switch、case組合
1.8.1不要拿青龍偃月刀去削蘋果
1.8.2 case關鍵字後面的值有什麼要求嗎
1.8.3 case語句的排列順序
1.8.4使用case語句的其他註意事項
1.9 do、while、for關鍵字
1.9.1 break與continue的區別
1.9.2循環語句的註意點
1.10 goto關鍵字
1.11 void關鍵字
1.11.1 void a
1.11.2 void修飾函數返回值和參數
1.11.3 void指針
1.11.4 void不能代表一個真實的變量
1.12 return關鍵字
1.13 const關鍵字也許該被替換為readonly
1.13.1 const修飾的只讀變量
1.13.2節省空間,避免不必要的內存分配,同時提高效率
1.13.3修飾一般變量
1.13.4修飾數組
1.13.5修飾指針
1.13.6修飾函數的參數
1.13.7修飾函數的返回值
1.14最易變的關鍵字——volatile
1.15最會帶帽子的關鍵字——extern
1.16 struct關鍵字
1.16.1空結構體多大
1.16.2柔性數組
1.16.3 struct與class的區別
1.17 union關鍵字
1.17.1大小端模式對union類型數據的影響
1.17.2如何用程序確認當前系統的存儲模式
1.18 enum關鍵字
1.18.1枚舉類型的使用方法
1.18.2枚舉與#define宏的區別
1.19偉大的縫紉師——typedef關鍵字
1.19.1關於馬甲的笑話
1.19.2歷史的誤會——也許應該是typerename
1.19.3 typedef與#define的區別
1.19.4 #define a int(10)與typedef int a(10)
第2章符號
2.1註釋符號
2.1.1幾個似非而是的註釋問題
2.1.2 y——x/* p
2.1.3怎樣才能寫出出色的註釋
2.2接續符和轉義符
2.3單引號、雙引號
2.4邏輯運算符
2.5位運算符
2.5.1左移和右移
2.5.20x01<<2+3的值為多少
2.6花括號
2.7 ++、--操作符
2.7.1 ++i+++i+++i
2.7.2貪心法
2.82/(-2)的值是多少
2.9運算符的優先級
2.9.1運算符的優先級表
2.9.2一些容易出錯的優先級問題
第3章預處理
3.1宏定義
3.1.1數值宏常量
3.1.2字符串宏常量
3.1 .3用define宏定義註釋符號“?”
3.1.4用define宏定義表達式
3.1.5宏定義中的空格
3.1.6 #undef
3.2條件編譯
3.3文件包含
3.4 #error預處理
3.5 #line預處理
3.6 #pragma預處理
3.6.1 #pragma message
3.6.2 #pragma code_seg
3.6.3 #pragma once
3.6.4 #pragma hdrstop
3.6.5 #pragma resource
3.6.6 #pragma warning
3.6.7 #pragma comment
3.6.8 #pragma pack
3.7“#”運算符
3.8“ ##”預算符
第4章指針和數組
4.1指針
4.1.1指針的內存佈局
4.1.2“*”與防盜門的鑰匙
4.1.3 int*p=NULL和*p=NULL有什麼區別
4.1.4如何將數值存儲到指定的內存地址
4.1.5編譯器的bug
4.1.6如何達到手中無劍、胸中也無劍的境界
4.2數組
4.2.1數組的內存佈局
4.2.2省政府和市政府的區別——&a(0)和&a的區別
4.2.3數組名a作為左值和右值的區別
4.3指針和數組之間的恩恩怨怨
4.3.1以指針的形式訪問和以下標的形式訪問
4.3.2 a和&a的區別
4.3.3指針和數組的定義與聲明
4.3.4指針和數組的對比
4.4指針數組和數組指針
4.4.1指針數組和數組指針的內存佈局
4.4.2 int(*)(10) p2——也許應該這麼定義數組指針
4.4.3再論a和&a之間的區別
4.4.4地址的強制轉換
4.5多維數組和多級指針
4.5.1二維數組
4.5.2二級指針
4.6數組參數和指針參數
4.6.1一維數組參數
4.6.2一級指針參數
4.6.3二維數組參數和二級指針參數
4.7函數指針
4.7.1函數指針的定義
4.7.2函數指針的使用
4.7.3 ( *(void(*)())0)()——這是什麼
4.7.4函數指針數組
4.7.5函數指針數組指針
第5章內存管理
5.1什麼是野指針
5.2棧、堆和靜態區
5.3常見的內存錯誤及對策
5.3.1指針沒有指向一塊合法的內存
5.3.2為指針分配的內存太小
5.3.3內存分配成功,但並未初始化
5.3.4內存越界
5.3.5內存洩漏
5.3.6內存已經被釋放了,但是繼續通過指針來使用
第6章函數
6.1函數的由來與好處
6.2編碼風格
6.3函數設計的一般原則和技巧
6.4函數遞歸
6.4.1一個簡單但易出錯的遞歸例子
6.4.2不使用任何變量編寫strlen函數
第7章文件結構
7.1文件內容的一般規則
7.2文件名命名的規則
7.3文件目錄的規則
第8章關於面試的秘密
8.1外表形象
8.1.1學生就是學生,穿著符合自己身份就行了
8.1.2不要一身異味,熏暈考官對你沒好處
8.1.3女生不要帶2個以上耳環,不要塗指甲
8.2內在表現
8.2.1談吐要符合自己身份,切忌不懂裝懂、滿嘴胡咧咧
8.2.2態度是一種習慣,習慣決定一切
8.2.3要學會尊敬別人和懂禮貌
8.3如何寫一份讓考官眼前一亮的簡歷
8.3.1個人信息怎麼寫
8.3.2求職意向和個人的技能、獲獎或榮譽情況怎麼突出
8.3.3成績表是應屆生必須要準備的
附錄1 C語言基礎測試題
附錄2 C語言基礎測試題答案
後記
參考文獻