为什么此代码会导致编译错误?

我有去年的试卷,并且一直在进行复习。我有一个问题。如您所见,下面的代码,我的老师说给定的代码将导致编译错误,但是我在计算机上的Visual Studio上尝试了该代码,并且它与输出配合使用:4.0代码是:

float x = 3.0;
float y = 2.0;
int j = 10;
int k = 4;                 

j = j / k + y;

我明天将参加考试。我应该写什么作为答案?

dahom 回答:为什么此代码会导致编译错误?

我在这里只看到两个问题:

  • x变量未使用,如果您的编译器设置为对未使用的变量启用警告,并且您已要求编译器将所有警告变为错误,则可能是错误。但是,通常使用默认的编译器设置可以正常编译。
  • 赋值语句将float的值存储在int变量中,这可能是您的老师正在学习的内容。但是,此转换是自动的,不会引起错误(但可能会产生警告)。

换句话说,您的老师似乎对此有误,实际上并未尝试编译此代码。


正如其他人所说,“代码需要包装在int main()函数中”也是一种很好的防弹方法,可以在老师合理的情况下正确解决问题。


如果您由于指出没有编译时错误而被标记为错误,请与老师交谈并向他们展示。由于类似的原因,我已经成功地反对了考试的观点。 (我有一个问题,问为什么o.ToString;是C#程序中的编译时错误。教授正在寻找“缺少括号”。正确的答案是“ o不在范围内。”)

,
int main() {
  float x = 3.f; // unused-variable warning
  float y = 2.f;
  int j = 10;
  int k = 4;

  j = j / k + y;
}

如果使用

进行编译,则将使用g ++进行编译
g++ -Wall -pedantic -pedantic-errors test.cpp

由于未使用x,因此只会显示警告。

本文链接:https://www.f2er.com/3158473.html

大家都在问