printf("%d,%d,%d/n",a,++a,a++)
2010-10-15 22:10
288 查看
int a = 1;
printf("%d,%d,%d/n",a,++a,a++);
输出是多少?
1.从左往右进行?
1,2,2 ?
2.从右往左?
1,3,3 ?
都不是,
是 2,2,1
解释一下:我们知道++a(假设a是int型)是相当于立即执行了a+=1;
而a++就是a,++要等到算式结束之后。
而printf("%d,%d,%d/n",a,++a,a++)就是一个算式,从右向左结合:
a++ 输出 1,此时a还是1
++a输出 2 ,此时a = 2;
a输出2,
之后a++生效, printf("%d/n",a)将输出3。
printf("%d,%d,%d/n",a,++a,a++);
输出是多少?
1.从左往右进行?
1,2,2 ?
2.从右往左?
1,3,3 ?
都不是,
是 2,2,1
解释一下:我们知道++a(假设a是int型)是相当于立即执行了a+=1;
而a++就是a,++要等到算式结束之后。
而printf("%d,%d,%d/n",a,++a,a++)就是一个算式,从右向左结合:
a++ 输出 1,此时a还是1
++a输出 2 ,此时a = 2;
a输出2,
之后a++生效, printf("%d/n",a)将输出3。
相关文章推荐
- printf("%d",5.01)和printf("%f",5)的输出结果
- printf("%d",5.01)和printf("%f",5)的输出结果
- printf("%d",5.01)和printf("%f",5)的输出结果
- char c=128; printf("c=%d\n",c); 结果为什么是-128
- printf("%x.yf",n)
- printf("%d",5.01)和printf("%f",5)的输出结果
- printf("%s! c is cool!\n","%s! c is cool!\n");
- main() { int a[3][3],*p,i; p=&a[1][1]; for(i=0;i<4;i++) p[i]=i+1; printf("%d\n",a[1][2]); } 求输出
- printf("%*.*s\n")
- 结果是:空格空格3.0e+001,我不明白这加001是怎么回事啊?还有这个printf("%e\n",30.14);结果是3.014000e+001这是怎么算出来的?谁帮我讲下方法?
- printf "%.*s"
- 论坛上看的 printf("%f",10/3);
- C语言:模拟实现printf,要求功能:print(&quot;ccc\ts!&quot;,&#39;b&#39;,&#39;i&#39;,&#39;t&#39;,&quot;welcome to you&quot;);
- printf("%d\v",n);奇怪的输出结果
- linux下printf中"\n"刷新缓冲区的疑问(已解决)
- C中对 printf("%.*s/n",len,content) 的意思理解。
- 关于fwprintf(fp,L"%s\n",str_chs)的UNICODE问题
- #include <stdio.h> //c库要.h。printf("Input n:\n");scanf("%d",&n);
- error:_tprintf(TEXT("OK"));居然能出错,太不可思议了
- printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");