- #include <stdio.h>
- int main()
- {
- // int x1,x2;
- // char y1,y2;
- // scanf("%d%c%d%c",&x1,&y1,&x2,&y2);
- // printf("%d%c%d%c\n",x1,y1,x2,y2);
- int a = 2;
- int c = (-a++); // c = -2 解释:++在后,计算时不管表达式等价于 int c = ( -a ); SO: c = -2 ;当计算完c后,a自增一次。a = 3
- int d = (-++a); // a = 4
- // int d = (++(-a));错误写法,这里不能这么表示
- // int d = (-++a);错误写法
- int e = (-(++a)); // a = 5
- printf("%d,%d,%d\n",c,d,e);
- return 0;
- }
复制代码
输出结果 -2,-4,-5;
第二问:
- int a=2,b=4,c=6,d;
- // d = a++||++b && c++; 这么写会有警告,正确写法:如下
- d = a++ || (++b && c++);//这步计算表达式等价于 d = 2 || (5 && 6 ) -> d = 2 || 1 -> d = 1
- printf("%d\n",d); // 输出结果为1
复制代码
|