为什么主函数输出73.4即使它的返回类型是int?
我是C++的初学者,并且对int main();
的用法感到困惑。我在网站上查看了一些关于此的主题,但如果有人能够提供对我的问题的洞察,我会很高兴。为什么主函数输出73.4即使它的返回类型是int?
对于下面的程序,如果我的输入是23,输出值是73.4,这不是一个int值,这与我的main()函数的定义只应返回一个int值的事实相反。
我在这里错过了什么?谢谢!
我的程序如下:
#include <iostream>
using namespace std;
int main(){
double Celsius, Farenheit; // defining variables celsius and farenheit
cout << " Input temperatue in celsius and press ENTER" << endl;
cin >> Celsius;
//double Farenheit;
Farenheit = ((Celsius*180)/100) + 32;
cout << "Value in Farenheit is:";
cout << Farenheit <<endl ;
//system("Pause");
return 0;
}
事实上,你的程序的输出是73.4
,但输出和返回值是不同的东西。
程序可以在控制台中写入,实际上任何函数都可以写入控制台。但是函数的返回值与其生成的输出不同。
在您的代码中,主函数的返回值不是73.4
。但这是它在控制台中产生的输出。它的返回值是以下退货声明:
return 0;
是的!那就对了!返回值是return关键字后面的值!
这里的返回一个int和产生输出到控制台的功能的另一个示例:
int calculate() {
std::cout << "calculating stuff..." << std::endl;
return 2 * 2 * 4;
}
int main() {
int return_value = calculate();
std::cout << "return value of calculate() is: "
<< return_value << std::endl;
return 0;
}
这将产生输出:
计算东西...计算()
返回值是:16
现在,也许你想知道为什么从main
返回0
。这通常是向操作系统表明程序已成功执行。
主要的返回值的目的是为了退出状态返回到操作系统。在标准C中,main的唯一有效签名是:int main(void)和int main(int argc,char ** argv)您使用的表单:int main()是旧式样声明,表示保留未指定参数数量
解决您的问题。改变数据types.aa
int celcius,fahrenheit;
或
double celcius; int fahrenheit;
这是C++。 'int main()'不带任何参数。 – chris
@chris如果你想要命令行参数呢?然后'main'接受2个参数。 – Sailanarmo
@Sailanarmo,我可以看到误解来自哪里,但这将是'int main(int,char **)'与我的评论一致。我特别对部分内容进行了评论,其中有一个空参数列表表示未指定数量的参数,这在C++中并不正确。 – chris
你的Farenheit
定义,使其double
类型的变量,因此,将存储double
类型的值。 int main()
的int
与此无关。它表示返回类型main()
的类型,因为程序的最后一行是return 0
,所以返回类型为0。其实你现在可以考虑int
在int main()
完全没用。
为了使程序输出一个整数,你应该定义Farenheit
为int
#include <iostream>
using namespace std;
int main(){
double Celsius;
int Farenheit; // defining variables celsius and farenheit
cout << " Input temperatue in celsius and press ENTER" << endl;
cin >> Celsius;
//double Farenheit;
Farenheit = ((Celsius*180)/100) + 32;
cout << "Value in Farenheit is:";
cout << Farenheit <<endl ;
//system("Pause");
return 0;
}
你正在打印出73.4,没有返回它。你正在返回'0'。 – Charles
Fahrenheit是一个浮点数,你告诉代码输出一个浮点数。 Main是您的代码所在的地方,并返回0,实际上它是一个整数。 – Sailanarmo
也许你缺少的是返回值不打印在任何地方?只有在脚本中可以测试该值以确定接下来会发生什么情况时才有用。 –