c语句中的编译错误

时间:2015-02-06 12:39:48

标签: c turbo-c

我正在尝试运行此代码。这段代码运行成功。但是当我将变量更改为常数时,我得到编译错误。

我的代码运行良好:

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

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

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

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

1 个答案:

答案 0 :(得分:3)

你的第一个代码使用变量和赋值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只是被重视并将它们放在那里无用。但是如果您运行包含逗号表达式的代码:

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作为最后一个值表达式。 您可以将数字播放用作()的表达式:

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;