#include<stdio.h> main() {int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2);} printf语句是怎么运行的

如题所述

printf运行结果为 3 ,3
第二个%d 是z+2 为3
第一个%d 是 (++x ,y++)表示 先运行 ++x , x变为4 ,然后输出 y 的值为3 ,在运行 y++ ,y 为4;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-23
输出的时候将两个%d依次被(++x,y++),z+2代替
%d表示输出int型数据值
\n表示换行

你再不懂我也没办法了。。。
第2个回答  2010-12-23
这么简单也不会,把基础打好去吧!!

#include <stdio.h> main( ) { int y=3,x=3,z=1; printf("%d %d\\n...
输出的值分别是(++x,y++)和z+2 (++x,y++)这个是一个逗号表达式,返回值为最右边表达式的值。所以返回的值为y。z+2就是3 所以输出为3 3 这个主要考的是逗号表达式返回值

#include<stdio.h> main() { int y=3,x=3,z=1; printf("%d%d\\n...
(++x,y++),这是逗号表达式,先执行++x,然后执行y++;结果取逗号后面表达式的值,也就是y++的值。y++的值为3,因为这是后加表达式,如果是前加++y的话,值就是4;z+2的值是1+2=3;所以结果输出是3 3

#include<stdio.h> main() { int y=3,x=3,z=1; printf("%d%d\\n...
++x,x先加1在运算,y++,y先运算在加1

...int main() { int y=3,x=3,z=1; printf("%d%d\\n",(++x,y++),z+2...
逗号运算符,只取最后一个参数,(++x,y++)其实就是y++,z+2=3,其中++x的值为4,y++的值为3,x,y的值都为4

#include<stdio.h> main() {int x=3,y=
自增与自减运算符可在变量的左边(前缀)与右边(后缀),运算规则教材上有的,手机打字很麻烦

#include <stdio.h> int main() { intx,y,z; x=2; y=3; z=x+y; pri...
不能写成一行,至少main与include要分成两行 include <stdio.h> int main() { int x,y,z; x=2; y=3; z=x+y; printf("x+y=%d\\n",z); } 另外int 和x间要有空格,以上代码已修改正确

#include <stdio.h> main() { int x=1, y=2, z=3; if(x>y) if(y<z...
结果是1 if(y<x)不成立,不执行下面。直接执行else printf(“%d,x++),所以结果为1

...#include<stdio.h> main() {int x,y,z; x=y=1; z=(++x)+(++y)+...
z=(++x)+(++y)+(x++)我们拆开写,++x此时x=2 ++y此时y=2 x++运行时这个表达式已经是2了,运行结束后x=3 所以z = 2 + 2 + 2 = 6 所以结果是3,2,6

#include<stdio.h> void main() { int x,y,z; x=y=2;z=3; y=z++-1...
①int main()而不是void main()②printf时,内部的双引号必须是英文的,你用的中文的就要错。以下是大概修补后的代码。include<stdio.h>int main() {int x,y,z;x=y=2;z=3;y=z++-1;printf("%d\\t%d\\t",x,y);y=++x-1;printf("%d\\t%d\\n",x,y);y=z---1;printf("%d\\t%d\\...

#include<stdio.h> void main() { int x,y,z;x=y=1;z=(++x)+(++y)+...
z=(++x)+(++y)+(x++);原式相当于z=n1+n2+n3 先执行n1=++x 执行后,x=2,n1=2 再执行n2=++y 执行后,y=2,n2=2 然后是n3=x++ 执行后,n3=2,x=3 最后为z=2+2+2 得z=6

相似回答