【问题标题】:compilation error in c statementsc语句中的编译错误
【发布时间】:2015-04-06 14:36:48
【问题描述】:

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

我的代码运行良好:

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

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

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

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

【问题讨论】:

  • 了解逗号运算符并避免使用 Turbo C
  • 为我工作:ideone.com/bVlqPi
  • 我的编译器允许d = 2,6,7
  • @UnicoRahul:如果您发布编译器的错误消息会很有帮助...
  • 另外,你不能来到 StackOverflow 并说“我得到编译错误”之类的话。你必须准确地告诉你得到了什么编译错误,并且准确地告诉你在哪一行得到它。

标签: c turbo-c


【解决方案1】:

您的第一个代码使用变量和赋值 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 作为最后一个值表达式。 您可以将数字 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2014-05-27
    相关资源
    最近更新 更多