C 逗號表達式 與返回值

逗號表達式的返回值是最後一個表達式的值

    int z;
    z=(5,6);
    printf("%d\n",z);//6
    int a;
    printf("%d\n",(a=3*5,a*4,a+5));//20

a=3*5,a*4,a+5可以拆分成
a=3*5;//a=15
a*4;//a=5
a+5;
最後一個表達式的值是20

語句

    int x,y,z;
    x=y=1;
    z=x++,y++,++y;
    printf("%d\n",z);//1

 

int x=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));//相當於輸出c的值
的输出结果是___D___。
A、1    B、0    C、4   D、3
    int a,b,c;
    a=10;
    c=(b=a);
    printf("%d\n",c);//10

 

    double t;
    printf("%f\n",(t=1,t+3,t++));//1.00000

 解析 t=1後t的值為1.00000;

t++返回值是1.00000;

 

習題:

若t为double类型,表达式t=1,t+5,t++的值是______。
A、1    B、6.0      C、2.0    D、1.0
求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3

 

若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C )。
A. 1             B. 2           C. 2.0          D. 2.5

 

posted @ 2018-12-15 14:35  liliyou  阅读(435)  评论(0编辑  收藏  举报