2012-01-27 2 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

+0

질문이 업데이트되었습니다. –

+1

아마도 정확한 복제본이 아닙니다. 그 대답은'int * const'가'std :: vector'가 포함 된 타입 (특히 할당 가능성)에 두는 요구 사항을 따르지 않기 때문에 첫 번째 두 개는 동일하고 세 번째는 오류라는 것입니다. –

답변

0

하나는 f, 다른 하나는 g로 명명됩니다. 그게 전부 야.

왼쪽에있는 요소에 const가 적용됩니다. 왼쪽에 요소가없는 경우 오른쪽 요소에 적용됩니다.

3

아무 것도 없습니다 (함수 이름 제외).

두 경우 모두 const은 포인터가 아닌 int을 수정합니다.

2

차이점이 없습니다. int constconst int은 같은 것을 의미합니다.

는 통상, const 왼쪽에 그 형태를 의미하십시오 int const * 일정한 정수, A (일정하지 않은) 정수가 아닌 상수 포인터에 대한 포인터이다. 아주 처음에 const을 두는 특별한 경우는 오른쪽에있는 유형을 말합니다..

관련 문제