第一个C代码的结果是一个变量,而第二个是3个变量的原因是因为在第一个代码中,使用了逗号运算符,逗号运算符会依次计算每个表达式,并返回最后一个表达式的结果作为整个表达式的结果。因此,第一个代码中的逗号运算符会依次计算a=1, b=2, c=3,并将最后一个表达式c=3的结果作为整个表达式的结果,因此结果是一个变量。
而在第二个代码中,使用了多个赋值语句,每个赋值语句都会将一个值赋给一个变量。因此,第二个代码中的三个赋值语句会依次将1赋给a,2赋给b,3赋给c,因此结果是三个变量。
要让第一个程序工作,可以通过细微的改变来实现。可以将逗号运算符改为分号,分号在C语言中表示语句的结束,不会像逗号运算符那样返回最后一个表达式的结果。因此,将逗号运算符改为分号后,每个赋值语句都会成为一个独立的语句,分别将1赋给a,2赋给b,3赋给c,从而实现了三个变量的赋值。修改后的代码如下:
#include <stdio.h>
int main() {
int a, b, c;
a = 1;
b = 2;
c = 3;
printf("a = %d, b = %d, c = %d\n", a, b, c);
return 0;
}
这样修改后的程序就会输出三个变量的值。
领取专属 10元无门槛券
手把手带您无忧上云