为什么你可以在main中返回一个const char *?

时间:2014-03-09 13:26:42

标签: c++

有人可以解释这段代码在编译时不会出错吗?

int main()
{
  // why doesn't the following line give a type mismatch error??/
  return "success!";
}

1 个答案:

答案 0 :(得分:9)

由于三字符??/\取代,意味着返回已被注释掉。您的代码等同于

int main()
{
  // why doesn't the following line give a type mismatch error\
  return "success!";
}

相同
int main()
{
  // why doesn't the following line give a type mismatch error return "success!";
}

另请注意,如果return中没有main语句,则会隐式return 0;,因此代码已明确定义。