對於C++中的給定原始指針類型T* ptr
,定義的所有operators列表是什麼?C++中指針的運算符列表
回答
列表:
- 賦值運算符 -
ptr = some other pointer
- 的引用操作符 -
*ptr
。 - 數組運算符 -
ptr[N]
。 - 成員訪問運算符
ptr->
如果T
是結構/類。 - 前後增量運算符 -
++ptr
和ptr++
。 - 前後減量運算符 -
--ptr
和ptr--
。 - 增量和賦值運算符 -
ptr += N
。 - 遞減和賦值運算符 -
ptr -= N
。 - 一元
+
運營商:+ptr
。請注意,這在C99中無效。它僅在C++中有效。 - 二進制
+
運營商 -ptr + N
。 - 二進制
-
運營商 -ptr - N
和ptr1 - ptr2
。 - 等於:
ptr == some other pointer
。 - 不等於:
ptr != some other pointer
。 - 一元非運算符:
!ptr
。 - 小於運營商:
ptr < some other pointer
。 - 小於等於運營商:
ptr <= some other pointer
。 - 大於運營商:
ptr > some other pointer
。 - 大於等於運營商:
ptr >= some other pointer
。 - 運營商地址:
&ptr
。
'+ ptr'和'ptr + = N'和'ptr - = N'和'ptr1 - ptr2'怎麼樣?加載*和* s使其更加清晰。 –
@PaulEvans,一元+運算符不適用於指針,但您建議的其他運算符是。我將它們添加到我的答案中。 –
+1很有意思,顯然'+ ptr'什麼都不做,但我認爲不允許它是有意義的,因爲'-ptr'根本沒有任何意義。很明顯,大多數編譯器忽略'+ ptr'作爲禮貌 - 但是它?如果你的意思是「N + ptr」,但是因爲編輯了「N」的意外而丟失了! –
假設
T* t;
解除引用
(*t).foo
或
t->foo
指針運算
t = t + 10; t += 10; // will add 10*sizeof(T)
t = t - 10; t -= 10; // will subtract 10*sizeof(T)
--t;
++t;
t--;
t++;
次像訪問數組:(通常是令人難以接受的),我能想到的運營商的
t[10]
在gcc中,一元運算符+ t似乎不會產生任何錯誤... – Vincent
@Vincent,這可能是因爲它什麼都不做。 – GreatAndPowerfulOz
- 1. C++,指針和運算符
- 2. C++指向運算符的指針
- 3. C++指針運算
- 4. C/C++:指針運算
- 5. 的C指針運算
- 6. ++指針上的運算符
- 7. C++運算符重載返回指針
- 8. 指針標準C運算符
- 9. C++運算符重載 - 指針,乘法
- 10. 指針運算在C
- 11. Objective-C:指針運算
- 12. C指針減法運算
- 13. 運算符重載指針
- 14. 指針指針(* argv [])的指針運算?
- 15. C++中auto_ptr的指針運算
- 16. sizeof運算指針陣列
- 17. 指針運算與陣列
- 18. 指針運算
- 19. 運算符重載和指向對象的指針,C++
- 20. void *指針上的指針運算
- 21. 指針數組上的指針運算
- 22. 「this」指針上的指針運算
- 23. iOS ARC:ManagedObject指針上的OR運算符
- 24. 奇怪的運算符與指針
- 25. 轉換運算符的指針
- 26. C指針列表(雙指針)
- 27. Ç - 指針運算
- 28. 指向字符串文字的指針的算術運算。
- 29. 什麼是指針 - 成員 - > *和。*運算符在C++中?
- 30. 在C++中,條件運算符不支持指針?
[Pointer Arithmetic](http:// stackoverflow。com/questions/394767 /指針算術) – Downvoter