欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

C語言最難學的是什么?

李中冰2年前12瀏覽0評論

我就是一個編程愛好者,也是一個編程工作者,其實就我個人的經驗來說呢:我覺得在編程的技術上,其實并不存在難或者不難,更多的是會或者不會,當學會了就會覺得,原來如此簡單。這些只是個人的一些經驗。

如果要了解比較硬核的知識點的話,我給你列舉一些:

計算機組成原理→DOS命令→匯編語言→C語言(不包括C++)、代碼書寫規范→數據結構、編譯原理、操作系統→計算機網絡、數據庫原理、正則表達式→其它語言(包括C++)、架構……對學習編程者的忠告:眼過千遍不如手過一遍!書看千行不如手敲一行!手敲千行不如單步一行!單步源代碼千行不如單步對應匯編一行!VC調試時按Alt+8、Alt+7、Alt+6和Alt+5,打開匯編窗口、堆棧窗口、內存窗口和寄存器窗口看每句C對應的匯編、單步執行并觀察相應堆棧、內存和寄存器變化,這樣過一遍不就啥都明白了嗎。對VC來說,所謂‘調試時’就是編譯連接通過以后,按F10或F11鍵單步執行一步以后的時候,或者在某行按F9設了斷點后按F5執行停在該斷點處的時候。(TurboC或BorlandC用TurboDebugger調試,Linux或Unix下用GDB調試時,看每句C對應的匯編并單步執行觀察相應內存和寄存器變化。)想要從本質上理解C指針,必須學習匯編以及C和匯編的對應關系。從匯編的角度理解和學習C語言的指針,原本看似復雜的東西就會變得非常簡單!指針即地址。“地址又是啥?”“只能從匯編語言和計算機組成原理的角度去解釋了。”但我又不得不承認:有那么些人喜歡或者適合用“先具體再抽象”的方法學習和理解復雜事物;而另一些人喜歡或者適合用“先抽象再具體”的方法學習和理解復雜事物。而我本人屬前者。不要企圖依賴輸出指針相關表達式的值【比如printf("%p\n",...)】來理解指針的本質,而要依賴調試時的反匯編窗口中的C/C++代碼【比如void*p=...】及其對應匯編指令以及內存窗口中的內存地址和內存值來理解指針的本質。這輩子不看內存地址和內存值;只畫鏈表、指針示意圖,畫堆棧示意圖,畫各種示意圖,甚至自己沒畫過而只看過書上的圖……能從本質上理解指針、理解函數參數傳遞嗎?本人深表懷疑!這輩子不種麥不收麥不將麥粒拿去磨面;只吃饅頭、吃面條、吃面包、……甚至從沒看過別人怎么蒸饅頭,壓面條,烤面包,……能從本質上理解面粉、理解面食嗎?本人深表懷疑!!提醒:“學習用匯編語言寫程序”和“VC調試(TC或BC用TD調試)時按Alt+8、Alt+7、Alt+6和Alt+5,打開匯編窗口、堆棧窗口、內存窗口和寄存器窗口看每句C對應的匯編、單步執行并觀察相應堆棧、內存和寄存器變化,這樣過一遍不就啥都明白了嗎。(Linux或Unix下可以在用GDB調試時,看每句C對應的匯編并單步執行觀察相應內存和寄存器變化。)想要從本質上理解C指針,必須學習C和匯編的對應關系。”不是一回事!不要迷信書、考題、老師、回帖;要迷信CPU、編譯器、調試器、運行結果。并請結合“盲人摸太陽”和“駕船出海時一定只帶一個指南針。”加以理解。任何理論、權威、傳說、真理、標準、解釋、想象、知識……都比不上擺在眼前的事實!有人說一套做一套,你相信他說的還是相信他做的?其實嚴格來說這個世界上古往今來所有人都是說一套做一套,不是嗎?不要寫連自己也預測不了結果的代碼!電腦內存或文件內容只是一個一維二進制字節數組及其對應的二進制地址;人腦才將電腦內存或文件內容中的這個一維二進制字節數組及其對應的二進制地址的某些部分看成是整數、有符號數/無符號數、浮點數、復數、英文字母、阿拉伯數字、中文/韓文/法文……字符/字符串、匯編指令、函數、函數參數、堆、棧、數組、指針、數組指針、指針數組、數組的數組、指針的指針、二維數組、字符點陣、字符筆畫的坐標、黑白二值圖片、灰度圖片、彩色圖片、錄音、視頻、指紋信息、身份證信息……