问答详情
源自:2-3 变量及赋值

多个同类型变量的赋值

int a=1,b=1;

这种写法有问题吗

提问者:时小七 2015-07-06 20:53

个回答

  • Perona
    2015-07-06 21:15:30
    已采纳

    可以这么写。

    但是要注意的是这种写法其实就是逗号表达式。

    C语言提供一种特殊的运算符——逗号运算符。

    逗号运算符,优先级别最低,它将两式联接起来,如:(3+4,6+2)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值。

    举个栗子,

    #include <stdio.h>
    int main()
    {
        int a=1,b=5;   /*这里定义年龄*/
        int c=(a,b);
        printf("c的值是%d!\n", c);
        return 0;    
    }

    发现没有,运行出来的结果是表达式2的值,即b的值。

  • onemoo
    2015-07-07 10:22:11

    你写的是合法的定义语句。C语言可以用逗号隔开来声明多个变量,但这种写法不是逗号表达式,这只是声明语法的一种形式。

    @Perona 回答中的第5行,等号的右侧才算是逗号表达式。