[問題] 作為一個程式設計人員,有可以完全不碰C …

看板C_and_CPP作者 (mathematic)時間16年前 (2009/10/25 15:37), 編輯推噓15(16165)
留言82則, 18人參與, 最新討論串1/11 (看更多)
看到C/C++的指標就想吐... 但看了很多文章都說C/C++都是必學的 相較之下JAVA簡潔多了 有可以完全不學C/C++嗎.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.236.211.97

10/25 15:45, , 1F
可以啊,一個流行中的語言學到專精也是能混口飯吃
10/25 15:45, 1F

10/25 15:46, , 2F
所謂必學,應該是指,如果你打算學多種語言情況下
10/25 15:46, 2F

10/25 15:46, , 3F
至少選個C/C++會不錯的意思 (至少比選VB強吧)
10/25 15:46, 3F

10/25 15:48, , 4F
只要你上課用不到 以後工作也用不到就無所謂吧
10/25 15:48, 4F

10/25 15:48, , 5F
Java練到頂尖的話 前途應該也挺不錯的 XD
10/25 15:48, 5F

10/25 15:59, , 6F
不太懂point,要把語言練到頂尖 XD?
10/25 15:59, 6F

10/25 16:01, , 7F
pointer
10/25 16:01, 7F

10/25 16:01, , 8F
在Java沒有
10/25 16:01, 8F

10/25 16:02, , 9F
對了,學Java還是會碰到OOA&D的問題
10/25 16:02, 9F

10/25 16:09, , 10F
我一直覺得會說弄不懂pointer的人是根本不熟電腦的運作原理
10/25 16:09, 10F

10/25 16:10, , 11F
對電腦運作原理瞭解的人會覺得pointer是很直觀易懂的東西
10/25 16:10, 11F

10/25 16:11, , 12F
推樓上 pointer沒想像中難
10/25 16:11, 12F

10/25 16:12, , 13F
說難的話Java更難 很好上手 但是想要專精非常困難
10/25 16:12, 13F

10/25 16:13, , 14F
不懂這些東西要靠純粹寫AP混口飯吃當然OK
10/25 16:13, 14F

10/25 16:14, , 15F
但是要再更精進成為程式高手或想走學術路線會有障礙
10/25 16:14, 15F

10/25 16:14, , 16F
每個人的背景、學過得東西本來就不一樣
10/25 16:14, 16F
我不是不會用pointer,是看到就想吐...是不想用...話說到底為什麼 很多明明不用用指標就能做到的工作,但又要用指標來做呢?? ※ 編輯: mahoihei 來自: 119.236.211.97 (10/25 16:16)

10/25 16:15, , 17F
如果熟組合語言跟一些額外東西的話,是比較容易對指標
10/25 16:15, 17F

10/25 16:15, , 18F
理解。但懂指標對於寫現代的應用程式幫助到底多大我存疑
10/25 16:15, 18F
※ 編輯: mahoihei 來自: 119.236.211.97 (10/25 16:16)

10/25 16:16, , 19F
其實我覺得, Java學到專精, 各種專用class(?)用到熟透,
10/25 16:16, 19F

10/25 16:17, , 20F
在一般應用領域未必會輸C/C++. 只是小弟我自己的接觸,
10/25 16:17, 20F
還有,其實我覺得C/C++最難用的是...沒有string的變數類型... ※ 編輯: mahoihei 來自: 119.236.211.97 (10/25 16:18)

10/25 16:17, , 21F
OS底層, driver等, 這些比較核心的部份似乎還是用C/C++
10/25 16:17, 21F

10/25 16:18, , 22F
的多, 或者更甚者應該說是C比較多. 不過這可能只是自己
10/25 16:18, 22F

10/25 16:18, , 23F
的工作環境, 不知道像MS/Google/Linux這些大型/商用的軟
10/25 16:18, 23F

10/25 16:19, , 24F
體是怎麼去撰寫的@_@"
10/25 16:19, 24F

10/25 16:19, , 25F
沒有string的變數類型不是理由吧~~大不了自己實作一個lib啊
10/25 16:19, 25F

10/25 16:19, , 26F
C++有std:string吧?? 要說也是C沒有專用string類型吧XD
10/25 16:19, 26F

10/25 16:19, , 27F
反正什麼都是假的,真的寫程式賺到大錢才是真的
10/25 16:19, 27F

10/25 16:19, , 28F
另外, 說真的有很多東西不用指標小弟我還真不知道怎麼做
10/25 16:19, 28F

10/25 16:19, , 29F
實作這應該不難吧,而且作一次後就不用再做了
10/25 16:19, 29F

10/25 16:20, , 30F
, 我的認知是, Java不是沒有用到指標/位址的觀念, 只是
10/25 16:20, 30F

10/25 16:20, , 31F
實際寫code的時候, 沒有讓你感覺到指標這東西的存在@_@"
10/25 16:20, 31F
小第我的C++還是停留在理論階段...沒時間去實作(學業太重) 可以舉一兩個沒有指標不行的例指嗎 ※ 編輯: mahoihei 來自: 119.236.211.97 (10/25 16:23)

10/25 16:22, , 32F
話說回來, 其實我覺得了解之後指標真的不難, 而且威力強
10/25 16:22, 32F

10/25 16:22, , 33F
大; 不過寫code的時候很容易寫錯就是了XD
10/25 16:22, 33F

10/25 16:25, , 34F
可以舉一兩個沒有指標不行的例子嗎?
10/25 16:25, 34F

10/25 16:25, , 35F
reference 不過就是功能被閹割的 pointer,你當 reference
10/25 16:25, 35F

10/25 16:25, , 36F
AP的例子一時想不到,不過寫driver和OS時可多了
10/25 16:25, 36F

10/25 16:25, , 37F
用也沒人管你吧。
10/25 16:25, 37F

10/25 16:26, , 38F
你要存取一個特定的MMIO位址不用pointer是要怎麼存取?
10/25 16:26, 38F

10/25 16:27, , 39F
reference 簡單多了,當初我為了搞懂pointer,用了2個星期
10/25 16:27, 39F

10/25 16:27, , 40F
再去圖書館看了10多本C/C++的書
10/25 16:27, 40F

10/25 16:28, , 41F
是的, 寫driver與底層相關的東西用pointer的可多了~_~
10/25 16:28, 41F

10/25 16:28, , 42F
其實我覺得pointer是很簡單的, 它是用起來很複雜而已:)
10/25 16:28, 42F

10/25 16:28, , 43F
你把 pointer 當 reference 用,也不過是 . 跟 -> 的差別
10/25 16:28, 43F

10/25 16:28, , 44F
,這樣是有多難懂。
10/25 16:28, 44F

10/25 16:29, , 45F
AP端, 簡單的像Linked-List或Tree, 當然我相信Java有自
10/25 16:29, 45F

10/25 16:29, , 46F
另外 C++ 要寫 OO 通常還是得用到 pointer,
10/25 16:29, 46F

10/25 16:29, , 47F
reference 會有限制,你沒辦法讓它重新參考其它物件。
10/25 16:29, 47F

10/25 16:29, , 48F
己的方式實作, 只是小弟我學慣C的人還真不知Java怎麼寫.
10/25 16:29, 48F

10/25 16:30, , 49F
driver除了MMIO這個擺名是pointer/address以外, 和OS溝
10/25 16:30, 49F

10/25 16:30, , 50F
寫AP的時候為了講求彈性function pointer就很好用
10/25 16:30, 50F

10/25 16:30, , 51F
其實我一直搞不懂,C++是C的延伸吧,也比C易上手,為什麼
10/25 16:30, 51F

10/25 16:30, , 52F
通, 尤其UMD與KMD溝通時, 常常有自訂大小的vendor私有資
10/25 16:30, 52F

10/25 16:31, , 53F
很多軟件都用C寫而不用C++??
10/25 16:31, 53F

10/25 16:31, , 54F
料, 這東西也是靠pointer+cast才會比較好實作....
10/25 16:31, 54F

10/25 16:31, , 55F
C++ 不是 C 的延伸,它是 Simula 67 來的。
10/25 16:31, 55F

10/25 16:33, , 56F
C/C++看出現的誰早, 誰自然有比較多的歷史資源可以用.
10/25 16:33, 56F

10/25 16:33, , 57F
如果你是老闆,有現成的功能已經用 C 寫過了,你會想花錢
10/25 16:33, 57F

10/25 16:33, , 58F
叫你的員工用 C++ 再寫一遍嗎?
10/25 16:33, 58F

10/25 16:33, , 59F
另外, 小弟我個人覺得procdure式的C比OO的C++容易trace
10/25 16:33, 59F

10/25 16:33, , 60F
mahoihei的問題Linus曾經跟人筆戰過XDDDD
10/25 16:33, 60F

10/25 16:33, , 61F
Code說....Orz
10/25 16:33, 61F

10/25 16:34, , 62F
我想問原po是怎麼用Java寫linked-list的 (舉手)
10/25 16:34, 62F

10/25 16:34, , 63F
C++比C容易上手,這...好吧,那至少比較不容易精通吧
10/25 16:34, 63F

10/25 16:35, , 64F
JAVA可以寫link-list啦,只是用慣C/C++的人會覺得很麻煩
10/25 16:35, 64F

10/25 16:35, , 65F
除了cin/cout與string以外, 小弟我覺得C比較容易上手XDD
10/25 16:35, 65F

10/25 16:37, , 66F
用Java ref寫的linked-list 應與C的pointer會挺相似的??
10/25 16:37, 66F

10/25 16:40, , 67F
題外話,台灣的名人中,我看那"蔡寶進"很愛學新程式語言
10/25 16:40, 67F

10/25 17:43, , 68F
不爽不要用
10/25 17:43, 68F

10/25 17:45, , 69F
其實 JAVA 基本型態之外的都是 pointer 啊... = =
10/25 17:45, 69F

10/25 18:11, , 70F
java因為少了pointer 所以在速度上面輸人一籌
10/25 18:11, 70F

10/25 18:13, , 71F
因為它需要用到更多的function call去描述pointer的運算
10/25 18:13, 71F

10/25 18:13, , 72F
我是這麼認為的
10/25 18:13, 72F

10/25 18:25, , 73F
咦 Java的效能不是因為多了一層Virtual Machine嗎?
10/25 18:25, 73F

10/25 18:33, , 74F
10/25 18:33, 74F

10/25 19:10, , 75F
是 Reference 不是 Pointer
10/25 19:10, 75F

10/25 19:29, , 76F
Reference = 有著語法糖衣包裝的 Pointer...(煙)
10/25 19:29, 76F

10/25 21:01, , 77F
如果你考慮效能、正確率,或者是不得不用指標的情況
10/25 21:01, 77F

10/26 00:03, , 78F
簡單的說 你真的不懂指標
10/26 00:03, 78F

10/26 00:05, , 79F
指標是思想, 不是會不會用的問題.
10/26 00:05, 79F

10/26 01:29, , 80F
不能用指標太痛苦了
10/26 01:29, 80F

10/26 12:29, , 81F
很多事情可以不用pointer做,那你就不要用阿
10/26 12:29, 81F

10/26 12:30, , 82F
你就把你看到指標的地方,改寫成不用指標,就不噁心了
10/26 12:30, 82F
文章代碼(AID): #1Av01BM5 (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 11 篇):
文章代碼(AID): #1Av01BM5 (C_and_CPP)