Re: [問卦] C++到底難學在哪裡

看板Gossiping作者 (我上了賊船了囧)時間2年前 (2023/03/05 15:42), 2年前編輯推噓10(12215)
留言29則, 16人參與, 2年前最新討論串5/16 (看更多)
※ 引述《tatty5566 ( )》之銘言: : 看到標題我就想問,C++是不是沒那麼適合新手學啊? : 我資工大一上程設就C++,那時候用的是螞蟻書 : 之後不知道是我沒天分,還是教授講太爛, : 學期中講到pointer我就聽不懂,直接斷然轉學 指標不熟,單純就是練的不夠多,練多了就會知道這東西是什麼 你只看書上描述當然看不懂,直接跳下去寫就知道了 例如 int main() { int temp[5]; for(int i=0;i<5;i++){ temp[i]=i+1; printf("temp[%d]=%d\r\n",i,temp[i]); } return 0; } 這簡單的陣列填值,看不懂的就不要學寫程式了,快點轉行 把指標加上去 int main() { int temp[5]; int *p; p = &temp[0]; for(int i=0;i<5;i++){ *(p+i)=i+1; printf("temp[%d]=%d\r\n",i,temp[i]); printf("p+%d=%d\r\n",i,*(p+i)); } return 0; } 會發現為什麼我只是往指標寫值進去,陣列沒動作,陣列數字跟著一起動 因為指標就是直接把開頭位址,指到你指定的記憶體位址 上面那個例子指到陣列第0個位址去了,後面+1就是每次移動4個byte (指標宣告為int,int是4個byte,每次+1就是移動4個byte位址) 當然就會跟著把陣列塞滿 程式運作就像下面這樣 temp 0 1 2 3 4 ^ ^ ^ | | | p p+1 p+2 你指標跑完,陣列也填完數字了 指標後面還有一堆操作,基本邏輯就是記憶體位址操作 例如你要寫一個程式,你每次寫進去的資料量不一樣,這次寫10筆,下次15筆..etc 你如果宣告一個長度100的陣列,有次資料要寫101筆,你就爆了 最簡單的解決方法就是直接建一個超大的陣列,例如長度100000 你怎麼寫都不可能超過這個大小就沒事 但如果你的硬體記憶體不夠,你只能用指標,讓他可以浮動的一直寫下去(除非記憶體 被用完) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.223.176 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1678002146.A.813.html

03/05 15:44, 2年前 , 1F
還不是等著被AI取代 Zzz
03/05 15:44, 1F

03/05 15:47, 2年前 , 2F
我叫chatgpt寫
03/05 15:47, 2F
chatgpt現在只能寫一些簡單的程式啦,叫他寫複雜一點的就寫不出來了 https://www.ptt.cc/bbs/C_Chat/M.1677237907.A.28D.html

03/05 15:48, 2年前 , 3F
記憶體不貴 加記憶體不就解決
03/05 15:48, 3F
看你硬體啦,我這邊一堆記憶體不到100mb的硬體,你記憶體不能隨便用 當然pc就沒差了,現pc硬體動不動就10gb以上的記憶體當然隨你用 ※ 編輯: a1e (118.166.223.176 臺灣), 03/05/2023 15:50:45

03/05 15:48, 2年前 , 4F
可憐哪
03/05 15:48, 4F

03/05 15:51, 2年前 , 5F
QQ
03/05 15:51, 5F

03/05 15:51, 2年前 , 6F
可惜這是指標最基礎的用法,大家說很難懂
03/05 15:51, 6F

03/05 15:51, 2年前 , 7F
的應該不會是卡在這裡吧~
03/05 15:51, 7F
我也不知他到底卡在那裡,先講這點,不然還要打麼好多,好麻煩 ※ 編輯: a1e (118.166.223.176 臺灣), 03/05/2023 15:52:07

03/05 15:53, 2年前 , 8F
泄瀉泥
03/05 15:53, 8F

03/05 16:03, 2年前 , 9F
但這樣不就釋放前不能使用後面的記憶
03/05 16:03, 9F

03/05 16:04, 2年前 , 10F
空間否則有可能覆蓋? 畢竟沒限制範圍
03/05 16:04, 10F

03/05 16:05, 2年前 , 11F
好可憐喔~~大概只懂C/C++,換JAVA或
03/05 16:05, 11F

03/05 16:05, 2年前 , 12F
ASM就不知道了~~
03/05 16:05, 12F
組語是不會啦,不過說別人java不會的,是以為java有多難www 好可憐java就難到有人以為只有自己會的 wwwww

03/05 16:07, 2年前 , 13F
AI = 幫你Google 不會的人本來就該淘汰
03/05 16:07, 13F

03/05 16:07, 2年前 , 14F
建議可以是看看把「寫程式」換成「做菜
03/05 16:07, 14F

03/05 16:08, 2年前 , 15F
你吃看看就知道 AI 做什麼菜
03/05 16:08, 15F
※ 編輯: a1e (118.166.223.176 臺灣), 03/05/2023 16:13:37

03/05 16:16, 2年前 , 16F
來~~寫個VM或EMULATOR看看,把X86架構
03/05 16:16, 16F

03/05 16:17, 2年前 , 17F
上跑的程式換到MIPS架構上跑跑看
03/05 16:17, 17F

03/05 16:19, 2年前 , 18F
Javaer路過,目前看來py最有錢途,爭什
03/05 16:19, 18F

03/05 17:01, 2年前 , 19F
https://reurl.cc/pLMeQl 寫個作業系
03/05 17:01, 19F

03/05 17:01, 2年前 , 20F
統來看看
03/05 17:01, 20F

03/05 18:12, 2年前 , 21F
哪一個工具掙錢是看底子吧?只是C++/C
03/05 18:12, 21F

03/05 18:12, 2年前 , 22F
#門檻高,看不到什麼低階工作,要就是
03/05 18:12, 22F

03/05 18:12, 2年前 , 23F
獵頭跟LinkedIn
03/05 18:12, 23F

03/05 18:27, 2年前 , 24F
寫成p=temp;比較簡潔
03/05 18:27, 24F

03/05 19:07, 2年前 , 25F
別誤人子弟 叫人開100000個
03/05 19:07, 25F

03/05 19:09, 2年前 , 26F
sizeof(temp)/sizeof(int)
03/05 19:09, 26F

03/05 23:22, 2年前 , 27F
我是覺得不需要這麼折磨自己的眼睛
03/05 23:22, 27F

03/05 23:22, 2年前 , 28F
程式動得快 好維護擴展 交接順利即可
03/05 23:22, 28F

03/07 11:04, 2年前 , 29F
這篇中肯
03/07 11:04, 29F
文章代碼(AID): #1a14VYWJ (Gossiping)
討論串 (同標題文章)
文章代碼(AID): #1a14VYWJ (Gossiping)