2012-01-27 315 views
-1

可能重複:
What is the difference between const int*, const int * const, and int const *?
const int = int const?返回指針向量?

什麼是以下三者的區別?

vector<int const *> f() { ... } 

vector<const int *> g() { ... } 

vector<int * const> h() { ... } 
+0

這可能會幫助你使用常量指針和常量指針http://www.codeguru.com/cpp/cpp/cpp_mfc/general/article.php/c6967 – L7ColWinters 2012-01-27 16:10:33

+0

更新了問題。 – 2012-01-27 16:16:34

+1

可能不是一個確切的副本。答案是btw,前兩個是相同的,第三個是錯誤,因爲int * const不符合std :: vector放在包含類型上的要求(特別是可指定性) – 2012-01-27 19:02:38

回答

0

一個人的名字是f,另一個名字是g。而已。

const將應用於左側的元素。在左側沒有元素的情況下,將其應用於右側的元素。

3

什麼都沒有(除了函數的名字)。

在這兩種情況下,const都會修改int,而不是指針。

2

沒有區別; int constconst int意味着同樣的事情。

通常,const是指在其左類型:一個int const *是一個指針指向一個恆定整數,而不是恆定指向(非恆定)的整數。把const作爲最初的例子是一種特殊情況,它指的是右側的類型