顯示廣告
隱藏 ✕
※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2023-03-05 18:01:37
看板 Gossiping
作者 tatty5566 ( )
標題 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
Nigger5566: 從py開始學==1F 42.77.153.146 台灣 03/05 13:19
Python我沒碰過,有比較簡單喔?
s142857: C比c++簡單2F 118.150.84.182 台灣 03/05 13:19
這聽不少人講過
douge: 我從c++ 好爛 java 好棒棒聽到3F 140.112.175.205 台灣 03/05 13:19
loloman: 記憶體的配置跟觀念4F 42.72.144.150 台灣 03/05 13:20
我印象中有聽到pointer跟記憶體位置有關,但還是弄不懂
diabolica: 學機器語言5F 101.10.56.159 台灣 03/05 13:20
douge: 其他語言都死光了 結果c++還是活得好好的6F 140.112.175.205 台灣 03/05 13:20
nh60211as: 因為教的人也不一定懂7F 42.72.195.249 台灣 03/05 13:20
douge: 那些碼農去看個youtube 影片就會的語言8F 140.112.175.205 台灣 03/05 13:20
douge: 就注定會被淘汰的
douge: 因為被淘汰的是自己 ?
booth: 指標聽不懂正常 至少一半的人不適合寫程式11F 61.62.185.94 台灣 03/05 13:22
還好我跑了 = =
※ 編輯: tatty5566 (114.34.33.121 臺灣), 03/05/2023 13:25:00
joeboy: pointer聽不懂去看youtube12F 1.200.136.150 台灣 03/05 13:23
hune: 寫程式跟學歷沒有關係 要得是你的邏輯13F 27.247.231.238 台灣 03/05 13:24
olozil: 有時候是硬體姿勢不夠,會比較難理解C14F 42.73.142.76 台灣 03/05 13:24
dosiris: Pointer夠Oreilly出一本專書 你說呢15F 61.230.50.214 台灣 03/05 13:25
b2305911: 先學C再學C++ 不是很順嗎16F 49.216.232.92 台灣 03/05 13:26
LaAc: 不是 是因為指標本身就不容易17F 39.10.8.50 台灣 03/05 13:26
LaAc: 所以其實也是有人程設過了後就不用指標了
謝謝妳,聽到有安慰一些
riker729: 其實學C就可以了 最基礎的語言19F 1.169.249.50 台灣 03/05 13:28
gino0717: 我覺得這跟性癖比較有關 有人就是喜歡20F 123.194.162.12 台灣 03/05 13:28
gino0717: 有指標的東西
thelittleone: 就篩選機制 撐不過去的先洗掉22F 111.71.64.244 台灣 03/05 13:28
riker729: 硬體懂一些 學會指標 其他都容易上手23F 1.169.249.50 台灣 03/05 13:28
好像是,我記得那時候講pointer的時候,好像還有講一個call by reference,這
是不是跟記憶體有關?還有什麼call by value
bh2142: C++超他媽難,modern c++噁心到不行24F 42.73.64.74 台灣 03/05 13:28
kindaichitom: pointer觀念不難,難的是語法表達25F 1.160.68.195 台灣 03/05 13:29
kindaichitom: int *i;有*號,i=&j;*i=1;
kindaichitom: 同樣有*號,後面那個是dereference
kindaichitom: 後面的函數指標又有更多變化
kindaichitom: 一堆人放棄是正常的
kindaichitom: C語言只有call by value
bh2142: pointer根本簡單到不行31F 42.73.64.74 台灣 03/05 13:33
kindaichitom: 八卦是很多人不知道這一點32F 1.160.68.195 台灣 03/05 13:33
douge: pointer這種中高階的用法 現在也逐漸失寵了33F 140.112.175.205 台灣 03/05 13:33
douge: 增加維護跟交接的難度
douge: 不如架構清楚一點
kindaichitom: C++那個template真的很噁心不要碰!!36F 1.160.68.195 台灣 03/05 13:34
kindaichitom: 珍惜生命,遠離C++
kindaichitom: golang還有pointer,應該不到失寵@@
chaoliu: 不難 但就像上面說的 第一個混淆的點就是39F 111.248.189.88 台灣 03/05 13:36
Nigger5566: 有人寫C就一定會用指標啦,底層仔離40F 42.77.153.146 台灣 03/05 13:36
Nigger5566: 不開C的,不會指標別跟我說懂C==
XXXXDGC: 推11樓,寫程式要天賦的42F 42.76.64.162 台灣 03/05 13:36
chaoliu: 宣告的時候 會跟實際使用時混在一起43F 111.248.189.88 台灣 03/05 13:37
kindaichitom: 我寧可跟asm耗在一起也不碰template44F 1.160.68.195 台灣 03/05 13:37
XXXXDGC: 指標就是先篩掉不適合者的第一關卡45F 42.76.64.162 台灣 03/05 13:37
chaoliu: 建議教這段時先畫圖 圖解 不要從課本語法46F 111.248.189.88 台灣 03/05 13:38
NCKUEECS: ptr就是新手的一個崁47F 218.164.224.184 台灣 03/05 13:38
chaoliu: 下去教48F 111.248.189.88 台灣 03/05 13:38
那時候上課是念ppt,我猜投影片是書商提供的,教授就跟著唸,唸完就結束了
kindaichitom: 我覺得洪維恩的C語言書不錯49F 1.160.68.195 台灣 03/05 13:39
謝謝推薦,我來找
※ 編輯: tatty5566 (114.34.33.121 臺灣), 03/05/2023 13:40:48
peter98: 一堆資工宅  去專板喇50F 73.195.162.171 美國 03/05 13:39
kindaichitom: 指標是一個門檻,structure又是一個51F 1.160.68.195 台灣 03/05 13:39
chrisjohn214: 不覺得理解基本的指標需要什麼天賦52F 1.170.150.187 台灣 03/05 13:41
kindaichitom: 指標不需天賦,但比較底層是真的53F 1.160.68.195 台灣 03/05 13:43
kindaichitom: 只會python/basic的碰到會搞不懂
b2305911: 畫個圖真的比較好理解55F 49.216.232.92 台灣 03/05 13:44
k291154222: 我的看法 要打基本功的話從C開始 但56F 42.76.59.179 台灣 03/05 13:49
k291154222: 很容易半途而廢 如果是這樣 可以由Pyt
k291154222: hon 培養興趣開始 比較有成就感
whitefox: 先學過assembly再學c/c++會比較容易入門59F 218.35.151.252 台灣 03/05 13:53
kindaichitom: 一定的.asm非常難啊60F 1.160.68.195 台灣 03/05 13:56
kindaichitom: 普通人都從asm教,9成以上直接放棄
kindaichitom: 搞一堆暫存器,stack那麼抽象
yesyesyesyes: 先學C再學C++才合理啊63F 150.117.107.137 台灣 03/05 13:58
kindaichitom: 高階語言用1行就寫好了,而且直觀64F 1.160.68.195 台灣 03/05 13:58
yesyesyesyes: 先從組合語言開始學? 會嚇跑人吧65F 150.117.107.137 台灣 03/05 13:59
catvsdog: 光指標都可出一本書惹 我推 指標的藝術66F 39.14.16.61 台灣 03/05 14:00
catvsdog:  寫的還不錯
kindaichitom: asm門檻太高了,不過學會較有成就感68F 1.160.68.195 台灣 03/05 14:01
yesyesyesyes: http://i.imgur.com/GqlCPyX.jpg69F 27.240.241.21 台灣 03/05 14:03
[圖]
waterwalk: 說C簡單的 要不要去看c11....70F 114.46.197.248 台灣 03/05 14:05
waterwalk: 簡單來說語言還在進步 而且互相借鑒的
waterwalk: 地方越來越多(好用功能 大家都想要
max0928895: 指標還算機楚,遇到STL73F 223.140.49.165 台灣 03/05 14:11
ghost90331: 肥肥我看的C相關的語言能閃就閃74F 122.100.107.138 台灣 03/05 14:12
max0928895: 那才叫天書75F 223.140.49.165 台灣 03/05 14:12
ghost90331: C C++ C#76F 122.100.107.138 台灣 03/05 14:12
maplefff: 問題就在於很愛寫成 int *i=1. *i=177F 42.73.195.194 台灣 03/05 14:12
maplefff: 明明寫成int* i=1, *i=就可以表示很清
maplefff: 楚兩個*的意義不同
CIDgreen: 程式需要天分的,不適合即早篩掉是好事80F 123.192.67.106 台灣 03/05 14:40
CIDgreen: 硬走會越來越痛苦
kindaichitom: Modern C免費電子書也寫得很好82F 1.160.68.195 台灣 03/05 15:03
k798976869: 超適合新手 除非你完全不想了解底層83F 123.240.229.193 台灣 03/05 15:16
knme: 指標要理解很難 通了之後就能混飯吃84F 223.139.196.23 台灣 03/05 15:31
Wolfclaw: pointer這麼基本的概念,不懂的話其他語85F 101.9.199.136 台灣 03/05 15:37
Wolfclaw: 言也不會寫的多好
selfhu: 把*當作要去查水表就比較好理解了87F 42.75.200.27 台灣 03/05 15:50
fallinlove15: 教授教太爛88F 49.159.72.46 台灣 03/05 16:00
abbag: 先學 C 再學 C++ 比較好89F 114.136.237.85 台灣 03/05 16:12
askaleroux: 還出一本書 告訴你怎麼寫 不難嗎90F 111.71.38.166 台灣 03/05 17:01
tpegioe: 我也是倒在指標,但後面的物件、泛型、91F 68.181.16.218 美國 03/05 17:04
tpegioe: 多型都聽得懂,也會用
tpegioe: @maplefff 推,對初學友善的寫法,多樣
tpegioe: 且不容易理解的寫法等將來常寫就會了

--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 7713 
※ 本文也出現在看板: PttHot
作者 tatty5566 的最新發文:
點此顯示更多發文記錄
分享網址: 複製 已複製
1樓 時間: 2023-03-06 09:43:19 (台灣)
  03-06 09:43 TW
是你沒天分
2樓 時間: 2023-03-06 18:44:48 (台灣)
+1 03-06 18:44 TW
以前是沒得選擇,現在學程式從C開始根本智障,智障的是老師,什麼東西會了以後都會誤以為很簡單,不僅難學而且沒用,符號上的設計也是超級不直覺,抱著那些魔術符號在那邊說這很重要,根本智障。
指標對觀念的釐清最好是有助益,弄混淆就算了,常常還有害,以後如果真的有需要(很罕見的情形)再去學就好了
一堆老人倚老賣老,跟覺得古文很重要的中文老師一樣
3樓 時間: 2023-03-07 08:58:27 (台灣)
  03-07 08:58 TW
學校聽不懂的,去補習班都聽的懂,不是為了文憑還真不想花這個錢。
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是大錯特錯!!
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇