※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2023-03-05 18:01:37
看板 Gossiping
作者 標題 Re: [問卦] C++到底難學在哪裡
時間 Sun Mar 5 13:19:08 2023
※ 引述《iLeyaSin365 (365)》之銘言:
: C++是物件導向,比C困難吧?
: 打開Cpp語言的程式碼
: 我看到的不外乎質樸的for循環、
: 列印的語法、函數、參數。
: 雖然覺得C++看來看去就是類似的感覺,甚至比javascripts感覺更簡陋一些。
: 好像會陡然上升墜五里霧。
: 如果拿有C語言體質的rust相比,
: Rust看起來好像更深奧(更多概念)。
: 到底C++難在哪?
:
看到標題我就想問,C++是不是沒那麼適合新手學啊?
我資工大一上程設就C++,那時候用的是螞蟻書
之後不知道是我沒天分,還是教授講太爛,
學期中講到pointer我就聽不懂,直接斷然轉學
後來聽說沒程設基礎的,直接從C開始學比較容易
不知道是不是真的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.33.121 (臺灣)
※ 作者: tatty5566 2023-03-05 13:19:08
※ 文章代碼(AID): #1a12PELd (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1677993550.A.567.html
推 : 從py開始學==1F 42.77.153.146 台灣 03/05 13:19
Python我沒碰過,有比較簡單喔?→ : C比c++簡單2F 118.150.84.182 台灣 03/05 13:19
這聽不少人講過→ : 我從c++ 好爛 java 好棒棒聽到3F 140.112.175.205 台灣 03/05 13:19
推 : 記憶體的配置跟觀念4F 42.72.144.150 台灣 03/05 13:20
我印象中有聽到pointer跟記憶體位置有關,但還是弄不懂→ : 學機器語言5F 101.10.56.159 台灣 03/05 13:20
→ : 其他語言都死光了 結果c++還是活得好好的6F 140.112.175.205 台灣 03/05 13:20
→ : 因為教的人也不一定懂7F 42.72.195.249 台灣 03/05 13:20
→ : 那些碼農去看個youtube 影片就會的語言8F 140.112.175.205 台灣 03/05 13:20
→ : 就注定會被淘汰的
→ : 因為被淘汰的是自己 ?
→ : 就注定會被淘汰的
→ : 因為被淘汰的是自己 ?
噓 : 指標聽不懂正常 至少一半的人不適合寫程式11F 61.62.185.94 台灣 03/05 13:22
還好我跑了 = =※ 編輯: tatty5566 (114.34.33.121 臺灣), 03/05/2023 13:25:00
推 : pointer聽不懂去看youtube12F 1.200.136.150 台灣 03/05 13:23
推 : 寫程式跟學歷沒有關係 要得是你的邏輯13F 27.247.231.238 台灣 03/05 13:24
推 : 有時候是硬體姿勢不夠,會比較難理解C14F 42.73.142.76 台灣 03/05 13:24
推 : Pointer夠Oreilly出一本專書 你說呢15F 61.230.50.214 台灣 03/05 13:25
推 : 先學C再學C++ 不是很順嗎16F 49.216.232.92 台灣 03/05 13:26
推 : 不是 是因為指標本身就不容易17F 39.10.8.50 台灣 03/05 13:26
→ : 所以其實也是有人程設過了後就不用指標了
謝謝妳,聽到有安慰一些→ : 所以其實也是有人程設過了後就不用指標了
推 : 其實學C就可以了 最基礎的語言19F 1.169.249.50 台灣 03/05 13:28
→ : 我覺得這跟性癖比較有關 有人就是喜歡20F 123.194.162.12 台灣 03/05 13:28
→ : 有指標的東西
→ : 有指標的東西
→ : 就篩選機制 撐不過去的先洗掉22F 111.71.64.244 台灣 03/05 13:28
→ : 硬體懂一些 學會指標 其他都容易上手23F 1.169.249.50 台灣 03/05 13:28
好像是,我記得那時候講pointer的時候,好像還有講一個call by reference,這是不是跟記憶體有關?還有什麼call by value
推 : C++超他媽難,modern c++噁心到不行24F 42.73.64.74 台灣 03/05 13:28
推 : pointer觀念不難,難的是語法表達25F 1.160.68.195 台灣 03/05 13:29
→ : int *i;有*號,i=&j;*i=1;
→ : 同樣有*號,後面那個是dereference
→ : 後面的函數指標又有更多變化
→ : 一堆人放棄是正常的
→ : C語言只有call by value
→ : int *i;有*號,i=&j;*i=1;
→ : 同樣有*號,後面那個是dereference
→ : 後面的函數指標又有更多變化
→ : 一堆人放棄是正常的
→ : C語言只有call by value
推 : pointer根本簡單到不行31F 42.73.64.74 台灣 03/05 13:33
→ : 八卦是很多人不知道這一點32F 1.160.68.195 台灣 03/05 13:33
→ : pointer這種中高階的用法 現在也逐漸失寵了33F 140.112.175.205 台灣 03/05 13:33
→ : 增加維護跟交接的難度
→ : 不如架構清楚一點
→ : 增加維護跟交接的難度
→ : 不如架構清楚一點
→ : C++那個template真的很噁心不要碰!!36F 1.160.68.195 台灣 03/05 13:34
→ : 珍惜生命,遠離C++
→ : golang還有pointer,應該不到失寵@@
→ : 珍惜生命,遠離C++
→ : golang還有pointer,應該不到失寵@@
推 : 不難 但就像上面說的 第一個混淆的點就是39F 111.248.189.88 台灣 03/05 13:36
推 : 有人寫C就一定會用指標啦,底層仔離40F 42.77.153.146 台灣 03/05 13:36
→ : 不開C的,不會指標別跟我說懂C==
→ : 不開C的,不會指標別跟我說懂C==
推 : 推11樓,寫程式要天賦的42F 42.76.64.162 台灣 03/05 13:36
→ : 宣告的時候 會跟實際使用時混在一起43F 111.248.189.88 台灣 03/05 13:37
推 : 我寧可跟asm耗在一起也不碰template44F 1.160.68.195 台灣 03/05 13:37
→ : 指標就是先篩掉不適合者的第一關卡45F 42.76.64.162 台灣 03/05 13:37
→ : 建議教這段時先畫圖 圖解 不要從課本語法46F 111.248.189.88 台灣 03/05 13:38
→ : ptr就是新手的一個崁47F 218.164.224.184 台灣 03/05 13:38
→ : 下去教48F 111.248.189.88 台灣 03/05 13:38
那時候上課是念ppt,我猜投影片是書商提供的,教授就跟著唸,唸完就結束了→ : 我覺得洪維恩的C語言書不錯49F 1.160.68.195 台灣 03/05 13:39
謝謝推薦,我來找※ 編輯: tatty5566 (114.34.33.121 臺灣), 03/05/2023 13:40:48
噓 : 一堆資工宅 去專板喇50F 73.195.162.171 美國 03/05 13:39
→ : 指標是一個門檻,structure又是一個51F 1.160.68.195 台灣 03/05 13:39
推 : 不覺得理解基本的指標需要什麼天賦52F 1.170.150.187 台灣 03/05 13:41
推 : 指標不需天賦,但比較底層是真的53F 1.160.68.195 台灣 03/05 13:43
→ : 只會python/basic的碰到會搞不懂
→ : 只會python/basic的碰到會搞不懂
推 : 畫個圖真的比較好理解55F 49.216.232.92 台灣 03/05 13:44
推 : 我的看法 要打基本功的話從C開始 但56F 42.76.59.179 台灣 03/05 13:49
→ : 很容易半途而廢 如果是這樣 可以由Pyt
→ : hon 培養興趣開始 比較有成就感
→ : 很容易半途而廢 如果是這樣 可以由Pyt
→ : hon 培養興趣開始 比較有成就感
推 : 先學過assembly再學c/c++會比較容易入門59F 218.35.151.252 台灣 03/05 13:53
推 : 一定的.asm非常難啊60F 1.160.68.195 台灣 03/05 13:56
→ : 普通人都從asm教,9成以上直接放棄
→ : 搞一堆暫存器,stack那麼抽象
→ : 普通人都從asm教,9成以上直接放棄
→ : 搞一堆暫存器,stack那麼抽象
推 : 先學C再學C++才合理啊63F 150.117.107.137 台灣 03/05 13:58
→ : 高階語言用1行就寫好了,而且直觀64F 1.160.68.195 台灣 03/05 13:58
→ : 先從組合語言開始學? 會嚇跑人吧65F 150.117.107.137 台灣 03/05 13:59
推 : 光指標都可出一本書惹 我推 指標的藝術66F 39.14.16.61 台灣 03/05 14:00
→ : 寫的還不錯
→ : 寫的還不錯
推 : asm門檻太高了,不過學會較有成就感68F 1.160.68.195 台灣 03/05 14:01
推 : 說C簡單的 要不要去看c11....70F 114.46.197.248 台灣 03/05 14:05
→ : 簡單來說語言還在進步 而且互相借鑒的
→ : 地方越來越多(好用功能 大家都想要
→ : 簡單來說語言還在進步 而且互相借鑒的
→ : 地方越來越多(好用功能 大家都想要
推 : 指標還算機楚,遇到STL73F 223.140.49.165 台灣 03/05 14:11
推 : 肥肥我看的C相關的語言能閃就閃74F 122.100.107.138 台灣 03/05 14:12
→ : 那才叫天書75F 223.140.49.165 台灣 03/05 14:12
→ : C C++ C#76F 122.100.107.138 台灣 03/05 14:12
推 : 問題就在於很愛寫成 int *i=1. *i=177F 42.73.195.194 台灣 03/05 14:12
→ : 明明寫成int* i=1, *i=就可以表示很清
→ : 楚兩個*的意義不同
→ : 明明寫成int* i=1, *i=就可以表示很清
→ : 楚兩個*的意義不同
→ : 程式需要天分的,不適合即早篩掉是好事80F 123.192.67.106 台灣 03/05 14:40
→ : 硬走會越來越痛苦
→ : 硬走會越來越痛苦
推 : Modern C免費電子書也寫得很好82F 1.160.68.195 台灣 03/05 15:03
推 : 超適合新手 除非你完全不想了解底層83F 123.240.229.193 台灣 03/05 15:16
推 : 指標要理解很難 通了之後就能混飯吃84F 223.139.196.23 台灣 03/05 15:31
推 : pointer這麼基本的概念,不懂的話其他語85F 101.9.199.136 台灣 03/05 15:37
→ : 言也不會寫的多好
→ : 言也不會寫的多好
推 : 把*當作要去查水表就比較好理解了87F 42.75.200.27 台灣 03/05 15:50
→ : 教授教太爛88F 49.159.72.46 台灣 03/05 16:00
→ : 先學 C 再學 C++ 比較好89F 114.136.237.85 台灣 03/05 16:12
推 : 還出一本書 告訴你怎麼寫 不難嗎90F 111.71.38.166 台灣 03/05 17:01
推 : 我也是倒在指標,但後面的物件、泛型、91F 68.181.16.218 美國 03/05 17:04
→ : 多型都聽得懂,也會用
→ : @maplefff 推,對初學友善的寫法,多樣
→ : 且不容易理解的寫法等將來常寫就會了
→ : 多型都聽得懂,也會用
→ : @maplefff 推,對初學友善的寫法,多樣
→ : 且不容易理解的寫法等將來常寫就會了
--
2樓 時間: 2023-03-06 18:44:48 (台灣)
瞎
+1
03-06 18:44 TW
以前是沒得選擇,現在學程式從C開始根本智障,智障的是老師,什麼東西會了以後都會誤以為很簡單,不僅難學而且沒用,符號上的設計也是超級不直覺,抱著那些魔術符號在那邊說這很重要,根本智障。指標對觀念的釐清最好是有助益,弄混淆就算了,常常還有害,以後如果真的有需要(很罕見的情形)再去學就好了一堆老人倚老賣老,跟覺得古文很重要的中文老師一樣
4樓 時間: 2023-03-07 09:49:05 (台灣)
→
03-07 09:49 TW
看過一堆賣弄程式碼的,計算式跟結果一樣的東西,大家看的懂的運算不用,就是要寫那種給人看半天的推文裡有人推asm的,asm對最底層的部分是的確比C++好理解,因為asm就像是用算盤來做計算的意思不過C++還可以include一堆函式進來呼叫,asm要硬幹的話,大概只能自己指定跳到記憶體位置去執行,能用asm實際做出成品的那就真的有神
5樓 時間: 2023-03-07 16:06:41 (台灣)
→
03-07 16:06 TW
學python吧, 感覺不用太多基礎,還可以培養興趣, 學c 的話 * . -> 這三個符號就夠你搞了
6樓 時間: 2023-03-08 13:33:23 (台灣)
→
03-08 13:33 TW
C++不是C的升級版,叫你先從C學起,不是因為C比較簡單,應該是說如果你學會了C,基本上就沒什麼學不會的程式語言。指標是讓你可以實際碰觸到實體記憶體的東西,一般高階語言基本上都不做這種事,指標不是C/C++特有的東西,只是其他語言不會那麼開放讓使用者去碰觸記憶體。指標不會用,基本上程式還是可以寫的,反正用錯了,對系統是大災難。C就差在沒有物件導向這玩意而已,but,如果你不嫌麻煩,還是可以用C打造出物件導向的東西。當然,聰明的做法是用C++ 再多嘴一下,說C只有call by value是大錯特錯!!
回列表(←)
分享