請向我解釋此代碼的結果。後增量和增量前置運算符
//代碼a 當我在我的筆記本電腦上運行此代碼時,y的值爲4.我認爲,y的邏輯值應該爲5,因爲通過執行x ++它應該返回2而不遞增,因爲它是後增量然後當我們添加現在包含增加值的x時,即3。所以2 + 3是5,根據我。但根據我的Turbo C++ 3.0答案是4.
#include <stdio.h>
void main()
{
int x = 2,y;
**int y = x++ + x;** // ans 4
printf("y is :%d", y);
}
//代碼B 當運行該代碼,答案是6。這裏渦輪C++ ++在x被拾取x的遞增的值++ 3.0,這與上述代碼相反。邏輯上來說,答案是正確的,但在上面的代碼中沒有。 的#include
void main()
{
int x = 2,y;
**int y = x++ + ++x;** //and 6
printf("y is :%d", y);
}
你運行它並找出?你是否運行它我是一個調試器?什麼讓你困惑? – abligh
分配這個練習的老師的重點是讓你通過研究操作員順序和優先級的規則自行計算出來。讓我們向你解釋它會擊敗目標。 – Barmar
請參閱https://en.wikipedia.org/wiki/Comma_operator –