int a=1,b=1;
这种写法有问题吗
可以这么写。
但是要注意的是这种写法其实就是逗号表达式。
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的值。
你写的是合法的定义语句。C语言可以用逗号隔开来声明多个变量,但这种写法不是逗号表达式,这只是声明语法的一种形式。
@Perona 回答中的第5行,等号的右侧才算是逗号表达式。