我正在尝试运行此代码。这段代码运行成功。但是当我将变量更改为常数时,我得到编译错误。
我的代码运行良好:
int a =5,b=6,c=7;
int d;
d = a,b,c;
printf("%d",d);
当我运行代码时,其输出为5。 但是当我运行这段代码时:
d = 2,6,7;
printf("%d",d);
我得到编译错误。我也试过其他编译器。但错误仍然存在。我做错了什么。
答案 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;
}
您得到5
,b
和c+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;