4
A
回答
0
No. ->foo
(對於任何值foo
)是後綴運算符,並且具有比&
(前綴運算符)更高的優先級。
3
沒有區別,這只是爲了可讀性。 ->
具有比&
參考運算符更高的優先級。請參閱here。
爲了進一步證明了這一點,看看這些線的dissasembly:
一些短代碼
struct A {
int b;
};
int main() {
struct A *a;
int *c;
c = &a->b; // Disassemble these lines.
c = &(a->b);
return 1;
}
兩條線的dissasembly等同於以下內容:
movq -16(%rbp), %rax
movq %rax, -8(%rbp)
試試here中的代碼自己看看。
+2
你真的不需要證明,它在絕對清晰的黑白中優先規則:) – teppic
+1
@teppic我知道,我只是喜歡使用該工具! –
0
沒有區別。 ->
組件選擇運算符的優先級高於一元運算符&
,因此表達式&a->b
被解析爲&(a->b)
,結果是a
指向的實例中的成員b
的地址。
相關問題
- 1. 帶大括號,括號和括號的任務
- 2. 括號中的運算符符號的括號
- 3. 帶括號和不帶括號的可變參數之間的區別
- 4. Javascript如何使用帶括號的運算符和/或運算符
- 5. 帶或不帶括號的PHP比較
- 6. 調用不帶括號
- 7. 採用C符號帶或不帶括號
- 8. 帶圓括號和括號的Vim縮進級別
- 9. 帶有大括號和圓括號的塊如何工作?
- 10. 帶括號的笨查詢
- 11. 帶方括號的htaccess
- 12. 帶括號的str.replace函數
- 13. 帶括號的雙序列?
- 14. Codeigniter - 帶有activerecord的括號?
- 15. 帶花括號的流api
- 16. 帶多個括號的宏
- 17. 帶括號的語法
- 18. 將括號轉換爲不帶圓括號的等價條件
- 19. [innerHtml]:帶左尖括號的字符串
- 20. 不帶括號的sizeof的使用
- 21. 帶和不帶括號的程序之間的區別?
- 22. 當我用方括號和不帶方括號時,什麼是不同的?
- 23. 布爾運算符和括號
- 24. 帶括號和空格的Antl語法
- 25. F#:有括號和不帶括號的類型之間的區別
- 26. 不帶變量聲明的大括號
- 27. 調用不帶括號的JavaScript函數
- 28. 帶有和不帶圓括號的Perl調用方法
- 29. 「不返回分配」 - 帶括號和不帶括號的分配之間的區別
- 30. 變量內的括號後面帶括號es6
在這種情況下,使用括號可以更清楚地表達你的意思。 – teppic
@TlerlerSebastian不,這兩個表達式是等價的。 ' - >'的優先級高於'&'。 –
@PCLuddite是啊我記得我發表我的評論後,隨後刪除它。 –