دوشنبه ۲ اردیبهشت ۱۳۹۲ ویرایش شده توسط prodo
برنامهی زیر رو تست کردم
#include <iostream>
using namespace std;
int main()
{
int a = 0;
for(int i=0, j=0; i<5 && j<5; a = i++, j++)
cout<<"i : "<<i<<", j = "<<j<<", a = "<<a<<endl;
return 0;
}
خروجی این شد:
i : 0, j = 0, a = 0
i : 1, j = 1, a = 0
i : 2, j = 2, a = 1
i : 3, j = 3, a = 2
i : 4, j = 4, a = 3
برنامهی زیر رو با تغییر `j++` به '++j` `++j` تست کردم
#include <iostream>
using namespace std;
int main()
{
int a = 0;
for(int i=0, j=0; i<5 && j<5; a = i++, j++)
cout<<"i : "<<i<<", j = "<<j<<", a = "<<a<<endl;
return 0;
}
خروجی تغییر نکرد!!! تا اینجا این به دست اومده که این کاما همون کار معمول و میکنه. یعنی مقدار آخرین عبارت کاما یعنی سمت راستترین رو برمیگردونه.
اما چرا این دوتا خروجیها یکی شد خب؟