回答
x =+ 4
意味着
x= (+4)
或者乾脆
x=4
雖然這種結構語法正確的,並且可以被編譯,並沒有多大意義,最可能是一個錯字,其中x==4
之意,特別是它被用作條件if
對不起,我最初的回答是愚蠢地誤讀了這個問題。
正確答案,是這個代碼僅僅分配x的正4, 值,因爲這是然後非零它進一步由5.
這個程序中的一個更簡單的形式滿足如果和增量它其目前的狀態是:
x = 9;
不過,我強烈懷疑有涉及一個錯字和if條件要麼是x == 4
,x += 4
或x != 4
根據上下文中的聲明。
在C早期,=+
與+=
相同,但是很久沒有進入C++了。
=+a
被理解爲是= (+a)
一元+
操作促進了參數的int
如果它是一個更窄的類型的,否則它是一個空操作。
和=
是定期任務。
你能湊合用這種方式=+
和=
之間的差異:
如果=
兩次超載了兩種特定配對,例如{Foo
,int
}和{Foo
,char
},和你有一個例子Foo
foo
和char c
,然後
foo = c // calls the overload taking a `char`
和
foo =+ c // calls the overload taking an `int`
會調用不同的重載。
OK剛剛圓了這一點,我也發現,我的預感是正確的,= +和= - 是+ =和確實只是過時的形式 - =運在今天使用:
堆棧溢出:What does =+ mean in C? https://www.cs.auckland.ac.nz/references/unix/digital/AQTLTBTE/DOCU_064.HTM(現在這是一個老式的網頁!)
特別
https://en.wikipedia.org/wiki/C_(programming_language)#K.26R_C
告訴我們,他們正在改變:「複合賦值運算符的對(例如= - )改爲形式op =(也就是 - =)以去除由諸如i = -10的結構創建的語義歧義,其被解釋爲i = -10(遞減i由10)而不是可能的意圖i = -10(讓我爲-10)。「
所以它不是明確+ ve或-ve做一個參數。您可以簡單地替換現代形式,例如使用+ =代替= +。
你可以刪除你的其他,現在過時的答案,以支持這個。還要注意你引用C,但這個問題是關於C++的。 – eis
我已經刪除了你之前的'答案',這不是論壇,你可以* [edit] *你的答案來改進它們。 –
- 1. :c/C++中的運算符
- 2. 〜C中的運算符
- 3. C中的typeof運算符
- 4. C++中的新運算符
- 5. C++運算符 ''
- 6. 運算符[] [] C++
- 7. C++:運算符重載,運算符+
- 8. C++運算符在已重載的運算符中重載
- 9. 詮釋浮點運算符C中的位運算符
- 10. C/C++中的真模運算符?
- 11. C中的代字符運算符在
- 12. C++ typeid運算符
- 13. C#Lambda運算符
- 14. C#coalesce運算符
- 15. C++ overload []運算符
- 16. 運算符[&]在C++
- 17. 點運算符C++
- 18. C++ typeof運算符
- 19. 運算符()在C++
- 20. XOR運算符C++
- 21. XOR運算符C
- 22. C++運算符 - >
- 23. C++ delete []運算符
- 24. 字符串運算符C++
- 25. 替代在C++中使用%運算符和/運算符
- 26. 運算符在C++幫助中重載流提取運算符
- 27. 在條件運算符中增加運算符c
- 28. C#?運算符的語法
- 29. C++運算符的presedence
- 30. C中的「==」運算符的返回值
看起來像我的錯字。 – mascoj
請注意,只要您使用相當高的警告級別,體面的編譯器就會爲此代碼發出警告。 –
雖然實際上並不是C/C++運算符,但我經常希望它是,所以我可以寫A * B = + C而不是C + = A * B。 –