打印函数会返回意外值,为什么?

Ben*_*son 6 c++ function

我将一个值传递给一个函数来将Celsius转换为Fahrenheit,但是控制台会输出一个错误代码,当我谷歌它时它不会产生任何结果.

// Function Declarations
float fToC(float degreesF = 32.0);

int main() {
    float fahrenheit = 10; 
    float centigrade = 10;

    centigrade = fToC(fahrenheit); 
    cout << "Freezing Point: " << fToC << "C" << endl;

    return 0;
}


// Function Defintions 
float fToC(float degreesF) {
    float degreesC = ((5.0 / 9.0)*(degreesF - 32));
    return degreesC;
}
Run Code Online (Sandbox Code Playgroud)

这打印到控制台:

Freezing Point: 00A31627C
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

seb*_*ern 9

这是因为你打印出的功能而不是摄氏.

cout << "Freezing Point: " << fToC << "C" << endl; 在控制台中,它显示了该功能的内存地址.

你应该做的事情如下:

cout << "Freezing Point: " << centigrade << "C" << endl;


πάν*_*ῥεῖ 8

但是控制台会输出一个错误代码,当我谷歌它时,它不会显示任何内容.

那不是错误代码.

你错过了调用函数的括号:

 cout << "Freezing Point: " << fToC(farenheit) << "C" << endl;
                                // ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

而是打印功能地址.


你可能打算打印

 cout << "Freezing Point: " << centigrade << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

因为你已经通过调用函数计算了值.


Sam*_*hik 7

好,

cout << "Freezing Point: " << fToC << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

流行测验适合你:什么是"fToC"?为什么,这是你的功能,你看到的结果是你的函数代码所在的无意义的内部存储器地址.

你可能想写:

cout << "Freezing Point: " << centigrade << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

不幸的是,计算机只会执行您要求它执行的操作,而不是您希望它执行的操作.


小智 7

这是错的:

cout << "Freezing Point: " << fToC << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

您将fToC传递给控制台,因此它会打印该函数的地址.删除fToC并写入摄氏度.


moj*_*jo2 6

cout << "Freezing Point: " << fToC << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

是不正确的.你不能输出的函数名在cout像这样的,希望它会给你你想要的结果.它将打印出函数存储的地址.但是,您可以调用的功能

cout << "Freezing Point: " << fToC(fahrenheit) << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

因为fToC(fahrenheit)实际上是a float,你给它的参数,所以你应该得到你想要的答案而不是函数地址.你也可以使用:

cout << "Freezing Point: " << centigrade << "C" << endl;
Run Code Online (Sandbox Code Playgroud)

您在上一行中定义的.