c语句中的编译错误

compilation error in c statements

我正在尝试 运行 此 code.this 代码 运行s successfully.But 当我将变量更改为常量时出现编译错误。

我的代码运行良好:

 int a =5,b=6,c=7;
 int d;
 d = a,b,c;
 printf("%d",d);

as i 运行 代码其输出为 5。 但是当我 运行 这段代码时:

 d = 2,6,7;
 printf("%d",d);

我得到编译 error.I 我也在其他编译器上试过。但错误仍然存​​在。我做错了什么。

您的第一个代码使用变量和赋值 d = a 以及 b 和 c 就像那里的表达式一样,所以 运行 代码:

int main(int argc, char const *argv[])
{
 int a =5,b=5,c=7;
 int d;
 d = a,b,c+1;
 printf("%d",d);
 return 0;
}

你得到 5bc+1 只是估值并把它们放在那里 useless.But 如果你 运行 这个包含逗号表达式的代码:

int main(int argc, char const *argv[])
{
 int a =5,b=5,c=7;
 int d;
 d = (a,b,c+1);
 printf("%d",d);
 return 0;
}

你得到 8 作为最后一个值表达式。 您可以将数字 play 用作 ():

的表达式
int main(int argc, char const *argv[])
{
 int a =5,b=5,c=7;
 int d;
 d = (0,3,1);
 printf("%d",d);
 return 0;
}

获取最后一个数字或有价值的数据。

下面的代码对我有用:

int main(int argc, char const *argv[])
{
 int a =5,b=5,c=7;
 int d;
 d = 0,3+1,1-1;
 printf("%d",d);
 return 0;
}

它输出的是0,但是如果你不带(),这样就没有意义了,为什么不直接用d = 0;