w*******n 发帖数: 773 | 1 int a=10,b;
b=a++ + ++a;
printf("%d,%d,%d,%d",b,a++,a,++a);
compiled and run:
22,13,14,14
按照我的理解
应该是:
22 12 13 14 | D**********d 发帖数: 849 | | J******d 发帖数: 506 | 3 嗯,这种题确实很13.
【在 D**********d 的大作中提到】 : 22.13.13.13
| z****u 发帖数: 185 | | z****s 发帖数: 532 | 5
printf("%d,%d,%d,%d",b,a++,a,++a);
++a, a=13,
print b 22
print a++ 13, a=14 now
print a 14
print ++a 14
Same as line: b=a++ + ++a;
++a has 1st priority
【在 w*******n 的大作中提到】 : int a=10,b; : b=a++ + ++a; : printf("%d,%d,%d,%d",b,a++,a,++a); : compiled and run: : 22,13,14,14 : 按照我的理解 : 应该是: : 22 12 13 14
| X****r 发帖数: 3557 | 6 Modifying a variable more than once between two
sequence points is undefined per C++ standard.
【在 w*******n 的大作中提到】 : int a=10,b; : b=a++ + ++a; : printf("%d,%d,%d,%d",b,a++,a,++a); : compiled and run: : 22,13,14,14 : 按照我的理解 : 应该是: : 22 12 13 14
| w*********m 发帖数: 196 | | J**********g 发帖数: 213 | 8 b=a++ + ++a; is machine/compiler dependent. you can check it in for example
c++ primer... | f*******o 发帖数: 38 | 9 不都强调说要些简单易懂的code吗?问这种问题有什么意思。 |
|