2010-08-26 34 views
1

我正在從C#移到C++,對我來說優先主題之一是指針。我正在閱讀一些關於指針的書和一些博客文章,並且我瞭解它的基本概念。現在我想通過練習來了解指針。如何學習C++指針並進行實踐?

我試圖搜索谷歌,遺憾的是沒有發現的東西。有什麼可以幫助我學習和實踐C++指針嗎?

+3

語言都沒有房子,你不從一個移動到另一個。你忘了你什麼都知道,並以這種方式開始。 (這意味着你得到[一本書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。)如果你不這樣做,你只會形成糟糕的做法和虛假信息。 – GManNickG 2010-08-26 06:12:44

+1

可能的重複[如何學習C指針?](http://stackoverflow.com/questions/1692142/how-to-learn-c-pointers) – 2010-08-26 06:15:57

+0

這就是說,[這是一個關於指針的迷你書](https :?//docs.google.com/fileview ID = 0B2oiI2reHOh4M2MzNzYwYzQtMGZkNC00NTljLWJiM2UtOGI0MmRkMTMyZGY4)。我沒看過,但看起來很棒。 (作者被認爲是知識淵博的。) – GManNickG 2010-08-26 06:23:02

回答

2

只是谷歌的「學習C指針」。例如,你會發現像http://computer.howstuffworks.com/c20.htm

一旦你明白指針是什麼,它做了什麼以及如何管理,就開始使用C++智能指針來處理一些煩人的工作。

+1

+1而不是radman的答案:在學習C++時,你應該明確地學習指針的來龍去脈,以及如何在將指針處理委託給智能指針之前操作它們......恕我直言: – Anthony 2010-08-26 06:24:45

+0

我同意理解指針基礎是重要的。但我認爲從一開始就習慣智能指針的習慣用法,以避免不良習慣更爲重要。很明顯,同時做這兩件事都是理想的。 – radman 2010-08-26 08:30:02

0

我同意GMan的評論,一本好的C++書是正確地做到這一點的方法。

除了在C++學習指針時最重要的是使用smart pointers。這些可以在適當的boost庫中找到。從一開始就使用這些將爲您在將來節省很多痛苦。

另外boost對任何C++程序員來說都是一個很好的資源,您應該熟悉它。

+0

只想提一下,雖然智能指針取出了指針管理的煩惱,但您仍然需要非常熟悉C++指針,才能正確使用智能指針。如果「指針」這個詞聽起來很可怕,那麼試着把它看作「參考」或「處理」。爲了幫助自己學習指針,在數據結構和算法中找到一本教科書,並使用指針進行練習。另外,請儘早熟悉「參考計數」概念。 – rwong 2010-08-26 06:28:27