新到貨2本75折
嗨翻C語言

嗨翻C語言

  • 定價:594
  • 優惠價:87517
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

向讀者提供了C語言的完整學習體驗。全書分為三個部分:第1章到第4章是基礎知識,包括基本語法、指標、字串、小工具與原始檔案;第5章到第8章為進階內容,有結構、聯合、資料結構、堆、函數指標、動/靜態連結;後四章是高級主題,內容涵蓋了系統調用、進程間通信、網路程式設計和多執行緒。每部分結束後還有一個有趣的實驗,可以提高讀者的實際操作能力。此外,書中還包大量的圖片、示例和代碼,有助於讀者對於知識的理解和把握。《嗨翻C語言》適用于C開發人員以及對C語言感興趣的初學者。
 

作者介紹

DavidGriffiths12歲時看到一部介紹Seymour Papert工作的紀錄片,從此踏上程式設計之路。15歲那年實現了Papert的LOGO程式設計語言。大學專業是理論數學,畢業後開始程式設計,並成為一名專欄作家。現在有三個頭銜:敏捷教練、程式師和車庫管理員。在《嗨翻C語言》之前,David寫過兩本Head First系列的書:Head First Rails和Head First Programming。你可以在Twitter上“粉”David:twitter./dogriffiths。Dawn Griffiths在英國一所*的大學開始了她的數學生涯,獲得了數學系的榮譽學位,畢業以後投身軟體發展行業,迄今已經有15年的IT行業從業經驗。在和David一起寫《嗨翻C語言》之前,Dawn寫過兩本Head First系列的書(《深入淺出統計學》和HeadFirst2DGeometry),同時還主持過該系列其他幾本書。
 

目錄

引子
讓大腦重視C語言。現在你正試著學習某些東西,為了不讓殼,你的大腦也在幫你的忙,大腦在想:“把空間留給重要的事,比如什麼動物是危險的?滑雪是不是一個壞主意?”那麼怎麼才能欺你的大腦,讓它認為學好C關係到你下半生的幸福呢?
本書為誰而寫xxxii
我們知道你在想什麼xxxiii
元認知xxxv
馴服你的大腦xxxvii
用戶須知xxxviii
技術審校團隊xl
致謝xli

1 進入C語言的世界
C語言入門
想知道電腦在想什麼?
你 需要為一款新遊戲編寫高性能的代碼嗎?你需要為Arduino程式設計嗎?你需要在iPhone應用中使用高級的協力廠商庫嗎?如果是的話,C語言就可以幫上忙 了。相比其他大多數語言,C語言的工作層次更低,因此理解C語言可以讓你更清楚程式在運行時到底發生了什麼,C語言還可以説明你更好地理解其他語言。來 吧,拿起編譯器,很快你就能入門了。
C語言用來創建空間小、速度快的程式2
完整的C程式長啥樣?5
如何運行程式?9
兩類命令14
到目前為止的代碼15
用C語言算牌?17
布耳運算18
現在的代碼25
隨時轉向的命運列車26
有時一次還不夠…… 29
所有迴圈的結構都相同……30
用break語句退出迴圈……31
C語言工具箱40

2記憶體和指針
指向何方?
如果真的想玩轉C語言,就需要理解C語言如何操縱記憶體。
C語言在如何使用記憶體方面賦予了你更多的掌控權。在本章中,你將揭開記憶體神秘的面紗,看到讀寫變數時到底發生了什麼;學習陣列的工作原理,以及怎樣避免煩人的記憶體錯誤;重要的是,你將看到掌握指標和記憶體定址對成為一名地道的C程式師來講有多麼重要。
C代碼包指針42
深入挖掘記憶體43
和指針起航44
試著傳遞指向變數的指標47
使用記憶體指針48
怎麼把字串傳給函數?53
陣列變數好比指標……54
運行代碼時,電腦在想什麼55
陣列變數與指標又不完全相同59
為什麼陣列從0開始61
為什麼指針有類型62
用指標輸入資料65
使用scanf()時要小心66
除了scanf()還可以用fgets()67
字串字面值不能更新72
如果想修改字串,就複製它74
把記憶體保存在大腦裡80
C語言工具箱81

2.5字串
字串原理
字串不只是用來讀取的。
在 C語言中字串其實就是char陣列,這你已經知道了,問題是字串能用來幹嘛?該string.h出場了。string.h是C標準庫的一員,它負責處 理字串。如果想要連接、比較或複製字串,string.h中的函數就可以派上用場了。在本章中,你將學會如何創建字串陣列,並近距離觀察如何使用 strstr()函數搜索字串。
不顧一切找Frank84
創建陣列的陣列85
找到包搜索文本的字串86
使用strstr()函數89
該審查代碼了94
“陣列的陣列”和“指標的陣列”98
C語言工具箱101

3創建小工具
做一件事並把它做好
作業系統都有小工具。
C語言小工具執行特定的小任務,例如讀寫檔、過濾資料。如果想要完成更複雜的任務,可以把多個工具連結在一起。那麼如何構建小工具呢?本章
中,你會看到創建小工具的基本要素並學會控制命令列選項、操縱資訊流、重定向,並很快建立自己的工具。
小工具可以解決大問題104
程式如何工作108
但沒有使用檔……109
可以用重定向110
隆重推出標準錯誤120
預設情況下,標準錯誤會發到顯示器121
fprintf()列印到資料流程122
用fprintf()修改代碼吧123
靈活的小工具128
切莫修改geo2json工具129
一個任務對應一個工具130
用管道連接輸入與輸出131
bermuda工具132
輸出多個檔137
創建自己的資料流程138
main()可以做得更多141
由庫代勞149
C語言工具箱156

4使用多個原始檔案
分而治之
大程式不等於大原始檔案。
你能想像一個企業級的程式如果只有一個原始檔案,維護起來有多麼困難與耗時嗎在本章中,你將學習怎樣把原始程式碼分解為易於管理的小模組,然後把它們合成一個大程式,同時還將瞭解資料類型的更多細節,並結識一個新朋友:make。
簡明資料類型指南162
勿以小杯盛大物163
使用類型轉換把float值存進整型變數164
不好啦,演員來了……168
代碼到底怎麼了169
編譯器不喜歡驚喜171
聲明與定義分離173
創建個標頭檔174
如果有共同特性……182
把代碼分成多個檔183
編譯的幕後花絮184
共用代碼需要自己的標頭檔186
又不是造火箭……還真是!189
不要重新編譯所有檔190
首先,把原始程式碼編譯為目的檔案191
記不住修改了哪些檔196
用make工具自動化構建198
make是如何工作的199
用makefile向make描述代碼200
火箭升空!205
C語言工具箱206

5 結構、聯合與位元欄位
創建自己的結構
生活可比數位複雜多了。
到 目前為止,你只接觸過C語言的基底資料型別,但如果想表示數位元、文本以外的其他東西呢,或為現實世界中的事物建立模型,怎麼辦?結構將幫你創建自己的結 構,模擬現實世界中錯綜複雜的事物。在本章中,你將學習如何把基底資料型別組成結構以及用聯合處理生活的不確定性。如果你想簡單地模擬“是”或“非”,可 以用位欄位。
有時要傳很多資料218
竊竊私語219
用結構創建結構化資料類型220
只要把“魚”給函數就行了221
使用“.”運運算元讀取結構欄位222
結構中的結構227
如何更新結構236
代碼克隆了烏龜238
你需要結構指標239
(*t).age和*t.age240
同一類事物,不同資料類型246
聯合可以有效使用記憶體空間247
如何使用聯合248
枚舉變數保存符號255
有時你想控制某一位261
位欄位的位數可調262
C語言工具箱266

6資料結構與動態儲存裝置
牽線搭橋
一個結構根本不夠。
為 了類比複雜的資料需求,通常需要把結構連結在一起。在本章中,你將學習如何用結構指標把自訂資料類型連接成複雜的大型資料結構,將通過創建鏈表來探索其 中的基本原理;同時還將通過在堆上動態地分配空間來學習如何讓資料結構處理可變數量的資料,並在完成工作後釋放空間;如果你嫌清理工作太麻煩,可以學習一 下怎麼用valgrind。
保存可變數量的資料268
鏈表就是一連串的資料269
在鏈表中插入資料270
創建遞迴結構271
用C語言創建島嶼……272
在鏈表中插入值273
用堆進行動態儲存裝置278
有用有還279
用malloc()申請記憶體……280
用strdup()修復代碼286
用完後釋放記憶體290
SPIES系統綜述300
軟體取證:使用valgrind302
反復使用valgrind,收集更多證據303
推敲證據304
終審判307
C語言工具箱309

7高級函數
發揮函數的極限
基本函數很好用,但有時需要更多功能。
到目前為止,你只關注了一些基本的東西,為了達成目標,需要更多的功能與靈活性。本章你將學習如何把函數作為參數傳遞,從而提高代碼的智商,
並學會用比較器函數排序,後還將學會使用可變參數函數讓代碼伸縮自如。
尋找真命天子……312
把代碼傳給函數316
把函數名告訴find()317
函數名是指向函數的指標……318
……沒有函數類型319
如何創建函數指標320
用C標準庫排序325
用函數指標設置順序326
分手信自動生成器334
創建函數指標陣列338
讓函數能伸能縮343
C語言工具箱350

8靜態程式庫與動態庫
熱插拔代碼
你已經見識過標準庫的威力。
是時候在代碼中發揮這種威力了。在本章中,你將學會創建自己的庫,以及在多個程式中複用相同代碼;還將掌握程式設計大師的秘訣——通過動態庫在運行時共用代碼;後你將寫出易於擴展並可以有效管理的代碼。
值得信賴的代碼352
尖括弧代表標準標頭檔354
如何共用代碼?355
共用.h標頭檔356
用完整路徑名共用.o目的檔案357
存檔中包多個.o文件358
用ar命令創建存檔359
後編譯其他程式360
Head First健身房全球化戰略365
計算卡路里366
事情可沒那麼簡單……369
程式由碎片組成……370
在運行時動態連結372
.a能在運行時連結嗎?373
首先,創建目的檔案374
一種平臺一個叫法375
C語言工具箱387

9進程與系統調用
打破疆界
打破常規。
你已經學會了通過在命令列連接小工具的方式建立複雜的程式。但如果你想在代碼中使用其他程式怎麼辦?本章中你將學會如何用系統服務來創建和控
制進程,讓程式發電子郵件、上網和使用任何已經安裝過的程式。本章的後,你將得到超越C語言的力量。
作業系統熱線電話398
駭客入侵了……402
豈止是安全問題403
exec()給你更多控制權404
exec()函數有很多405
陣列函數:execv()、execvp()、execve()406
傳遞環境變數407
大多數系統調用以相同方式出錯408
用RSS讀新聞416
exec()是程式中後一行代碼420
用fork() exec()運行子進程421
C語言工具箱427

10進程間通信
溝通的藝術
創建進程只是個開始。
如果你想控制運行中的進程,向進程發資料或讀取它的輸出,該怎麼辦?通過進程間通信,進程可以合力完成某件工作。我們將向你展示如何讓程式與系統中其他程式通信,從而提升它的戰鬥力。
輸入輸出重定向430
進程內部一瞥431
重定向即替換資料流程432
fileno()返回描述符號433
有時需要等待……438
家書抵萬金442
用管道連接進程443
案例研究:在中打開新聞444
子進程445
父進程445
在中打開網頁446
進程之死451
捕捉信號然後運行自己的代碼452
用sigaction()來註冊sigaction453
使用信號處理器454
用kill發信號457
打電話叫程式起床458
C語言工具箱466

11網路與通訊端
金窩,銀窩,不如127.0.0.1的草窩
不同電腦上的程式需要對話。
你已經學習了怎麼用I/O與檔通信,還學習了如何讓同一台電腦上的兩個進程通信,現在你將走向世界舞臺,讓C程式通過互聯網和世界各地的其他程式通信。本章的後你將創建具有伺服器和用戶端功能的程式。
互聯網knock-knock伺服器468
knock-knock伺服器概述469
BLAB:伺服器連接網路四部曲470
通訊端不是傳統意義上的資料流程472
伺服器有時不能正常啟動476
媽媽說要檢查錯誤477
從用戶端讀取數據478
一次只能服務一個人485
為每個用戶端fork()一個子進程486
自己動手寫網路用戶端端490
主動權在用戶端手中491
創建IP地址通訊端492
getaddrinfo()獲取功能變數名稱的地址493
C語言工具箱500

12執行緒
平行世界
程式經常需要同時做幾件事。
POSIX執行緒可以派生幾段並存執行的代碼,從而提高代碼的回應速度。但是要小心!執行緒雖然很強大,但它們之間可能發生衝突。本章你將學習如何用紅綠燈來防止代碼發生車禍。終你將學會創建POSIX執行緒,並使用同步機制來保護共用資料的安全。
任務是串列的……還是……502
……進程不是答案503
普通進程一次只做一件事504
多雇幾名員工:使用執行緒505
如何創建執行緒?506
用pthread_create創建執行緒507
執行緒不安全512
增設紅綠燈513
用互斥鎖來管理交通514
C語言工具箱521

i飯後甜點
十大遺漏知識點
革命尚未成功,同志還需努力。
我們認為你還需要知道一些事,如果不講,總覺得哪裡不對勁,但我們又不希望這本書重得只有大力士才提得動,所以我們只做簡單介紹。在你放下這本書前,盡情地享用這些“美味佳餚”吧。
#1. 運運算元540
#2. 預處理指令542
#3. static關鍵字543
#4. 資料類型的大小544
#5. 自動化測試545
#6. 再談gcc546
#7. 再談make548
#8. 開發工具550
#9. 創建GUI551
#10. 參考資料552
 

詳細資料

  • ISBN:9787115318848
  • 規格:平裝 / 588頁 / 17.6 x 18.9 x 2.94 cm / 普通級 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 【其他】2024采實電子書全書系:春暖花開‧享閱讀,參展書單書85折起、任選3本79折
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折