C/C++ 語言新手十三誡 -- Ver. 2016

作者: wtchen (沒有存在感的人)   2016-06-07 20:58:52
C/C++ 語言新手十三誡(The Thirteen Commandments for Newbie C/C++ Programmers)
by Khoguan Phuann
請注意:
(1) 本篇旨在提醒新手,避免初學常犯的錯誤(其實老手也常犯:-Q)。
但不能取代完整的學習,請自己好好研讀一兩本 C 語言的好書,
並多多實作練習。
(2) 強烈建議新手先看過此文再發問,你的問題極可能此文已經提出並
解答了。
(3) 以下所舉的錯誤例子如果在你的電腦上印出和正確例子相同的結果,
那只是不足為恃的一時僥倖。
(4) 不守十三誡者,輕則執行結果的輸出數據錯誤,或是程式當掉,重則
引爆核彈、毀滅地球(如果你的 C 程式是用來控制核彈發射器的話)。
=============================================================
目錄: (頁碼/行號) 2/24
01. 不可以使用尚未給予適當初值的變數 3/46
02. 不能存取超過陣列既定範圍的空間 5/90
03. 不可以提取不知指向何方的指標 7/134
04. 不要試圖用 char* 去更改一個"字串常數" 12/244
05. 不能在函式中回傳一個指向區域性自動變數的指標 16/332
06. 不可以只做 malloc(), 而不做相應的 free() 19/398
07. 在數值運算、賦值或比較中不可以隨意混用不同型別的數值 21/442
08. ++i/i++/
作者: wtchen (沒有存在感的人)   2016-06-07 21:05:00
有錯請指正
作者: kikiqqp (喵食罐頭)   2016-06-08 15:19:00
 
作者: Hazukashiine (私は幸せです)   2016-06-08 22:20:00
                        
作者: Davidhu127 (船船_BTTO)   2016-08-24 05:56:00
多謝!長知識了~ (更清楚了malloc,二維陣列ref,fragmentation)
作者: zzzz8931 (肥宅)   2016-08-30 13:01:00
作者: kobe200525 (leo)   2016-09-30 21:35:00
推~
作者: a620699999 (hihihi)   2015-04-15 13:44:00
作者: hpyhacking (駭人聽聞)   2015-05-19 21:23:00
作者: DemonElf (LdsFish)   2015-03-23 05:00:00
感謝分享!
作者: anarch (安那其)   2016-07-01 20:43:00
謝謝分享
作者: leviliang (levi)   2016-07-22 15:06:00
推!
作者: mythnc (迷小心)   2015-05-12 00:35:00
真的有在做事,比前板主好多了 :)
作者: siuoly (放空)   2015-05-01 21:53:00
謝謝 第十二條有幫助到我 程式深入的細節真的很難找資源
作者: Jeremy174   2016-08-01 11:09:00
已收藏
作者: imp334 (imp334)   2016-08-21 22:43:00
作者: James7878978 (日夏)   2015-03-27 21:40:00
作者: a58524andy (a58524andy)   2015-05-20 13:10:00
關於08.的"x=x++"的UB,這條SO有說明原因https://stackoverflow.com/a/47509458/9933842
作者: filialpiety4   2015-06-06 23:18:00
感謝~對初學者受益良多
作者: dzwei (Cout<< *p << \n ;)   2016-11-14 13:03:00
關於12. 如果是dynamic array,就得用pointer to pointer傳遞至func了, 詳見https://tinyurl.com/4bbd75bh

Links booklink

Contact Us: admin [ a t ] ucptt.com