我有一個類名X,「const X a」和「X const a」之間的區別是什麼如果X是類,「const X a」和「X const a」之間的區別是什麼
3
A
回答
13
什麼都沒有。
A const
限定符適用於立即在其左邊的任何東西。如果左邊沒有任何東西,那麼它適用於右邊的任何東西。
6
在這種情況下,沒有任何區別。
當你有一個指針或引用,這一變化可能看幾乎相同爲顯著雖然。鑑於這樣的:
T * a;
const
(或volatile
)相對於星號的位置是顯著:
T const * a;
T * const a;
第一個說a
是一個指向const T
(即你不能修改a
引用的T對象)。第二個說a
是一個(非const)T的一個常量 - 即,你可以修改a
點在,但你不能修改指針本身,所以你不能指向它在一個不同的對象。當然,你也可以做兩種:
T const * const a;
這意味着你不能改變指針本身或的T
對象時,它指的是。
2
如果您使用簡單類型(嵌入或自定義),那麼這是一個品味問題。
在使用指針的情況下有一個簡單的通用規則:如果const放在'*'之前,那麼指向的數據是常量,否則指針本身是常量,你不能改變它的值。
例如:
const int a=1; // 'a' value can't be changed
const int* q; // the data that 'a' point to is constant
int const* q; // the same
int* const p=&a; // the pointer is constant: const is behind '*'
所以
int b=2;
p = &b; // error: trying to change constant pointer
相關問題
- 1. 演員之間有什麼區別:(A)x和x爲A?
- 2. a = x和a = x在Python中的區別是什麼?
- 3. const int&x = 4和const int x = 4之間的區別
- 4. x的值是什麼? X = A ++ + ++ A + A ++
- 5. const struct {x} vs struct {const x}
- 6. 傳遞(int x)和(const int x)之間的區別
- 7. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 8. 爲什麼a + = x比a = a + x慢?
- 9. 什麼類型是auto&x = const int *?
- 10. 如果x是一個指針,x和x的區別是什麼?
- 11. Rails 1.X和2.X之間的主要區別是什麼
- 12. C中「* x = 1」和「x = 1」之間的區別是什麼?
- 13. * x = i和x =&i之間的區別是什麼
- 14. Angular 1.X和2.X之間的區別是什麼
- 15. 「const char *」和「const string」之間的EXACT技術區別是什麼?
- 16. a = a + b和a + = b之間的區別是什麼?
- 17. 成本函數,sum(x)和ones(1,length(x))* x之間的區別是什麼?
- 18. $('x> y'),$('y','x')和$('x y')之間有什麼區別?
- 19. 聲明「MyStuct a();」之間的區別是什麼?和「MyStruct a」?
- 20. 「#define STR(x)#x」和「#define STR(x)VAL(x)」與「#define VAL(x)#x」之間的區別是什麼?
- 21. static const char * const和static const char []之間有什麼區別?
- 22. * a = b和a =&b之間的區別是什麼?
- 23. a [:] = b和a = b之間的區別是什麼?
- 24. if($ a)和if($ a == 1)之間的區別是什麼?
- 25. C中*(a [1])和*(* a + 1)之間的區別是什麼?
- 26. int * x []和int(* x)[]之間的區別?
- 27. null == x和x == null之間的區別?
- 28. numpy的陣列,之間差的/ = X與A = A/X
- 29. (a mod 2 * x) - (a mod x)
- 30. IsNull(x)和x =「」之間有區別嗎?
但是有'const int的* A','INT * const的A'和'const int的* const的A'之間的差。 – Benoit 2010-10-21 06:54:38
@Benoit:是的,有。 – 2010-10-21 06:55:06
哦,非常感謝。 – Naruto 2010-10-21 06:58:06