这个小程序没看明白。

CHFKLIN2013 发布于 2013/11/25 11:46
阅读 335
收藏 0
#include "stdafx.h"
#include<iostream>
using namespace std;

static float global=1.111f;
void offset(float &&f)
{
    global +=f;
}
float getFloat()
{
    float =4.444f;
    return f;
}
void offset(float &f)
{
    global -=f;
}

int main()
{
    float u=10.000f;
    cout<<"global:"<<global<<endl;
    offset(3.333f);
    cout<<"global:"<<global<<endl;
    offset(getFloat()+2.222);
    cout<<"global:"<<global<<endl;
    offset(u);
    cout<<"global:"<<global<<endl;
    return 0;

}

调试后显示

主函数第三次调用offset(getFloat()+2.222);运行后的结果是11.11,应该是6.666才对吧。

这地方没看明白。


加载中
0
p
popcorn59
float getFloat() 

    float =4.444f; 
    return f; 

}

这里应该是漏打了变量名 f

楼主的问题很奇怪:
offset(getFloat()+2.222)
getFloat()+2.222 = 6.666
然后还有个offset(6.666) 啊,当然就变成11.11了。
这里的6.666不是具名变量,所以offset调用的是 void offset(float &&f) 。


0
leo108
leo108

这个函数……你是怎么编译通过的?

float getFloat() 
{ 
    float =4.444f; 
    return f; 
}



Shazi199
Shazi199
同问……
0
CHFKLIN2013
CHFKLIN2013

这个程序是书上的,我照着上面录入,编译通过了。用的VS2010。

就是没看明白啊。

返回顶部
顶部