CommaOperator.cpp
TCP1, p. 178
download
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int a = 0, b = 10, c = 20, d = 30, e = 40;
cout << "a = " << a << ", b = " << b << ", c = " << c
<< ", d = " << d << ", e = " << e << endl;
a = (b++, c++, d++, e++); // a = e before incrementation
cout << "a = " << a << ", b = " << b << ", c = " << c
<< ", d = " << d << ", e = " << e << endl;
// The parentheses are critical here. Without
// them, the statement will evaluate to:
a = b++, c++, d++, e++; // a = b before incrementation
cout << "a = " << a << ", b = " << b << ", c = " << c
<< ", d = " << d << ", e = " << e << endl;
(a = b++), c++, d++, e++; // a = b before incrementation
cout << "a = " << a << ", b = " << b << ", c = " << c
<< ", d = " << d << ", e = " << e << endl;
a = (b++, c++), d++, e++; // a = c before incrementation
cout << "a = " << a << ", b = " << b << ", c = " << c
<< ", d = " << d << ", e = " << e << endl;
return 0;
}
/*
g++ CommaOperator.cpp -o CommaOperator
./CommaOperator
a = 0, b = 10, c = 20, d = 30, e = 40
a = 40, b = 11, c = 21, d = 31, e = 41
a = 11, b = 12, c = 22, d = 32, e = 42
a = 12, b = 13, c = 23, d = 33, e = 43
a = 23, b = 14, c = 24, d = 34, e = 44
*/
Comments
Post a Comment