文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C++中的临时变量

C++中的临时变量

时间:2011-04-01  来源:邵国宝

void swapr(int &a, int &b)
{
        int temp;
        temp = a;
        a = b;
        b = temp;
}

在早期c++比较宽松的规则下,执行下面操作

long a = 3, b = 4;
swapr(a,b);

不会改变a,b的值,因为类型不匹配,编译器创建了临时变量。

如果本意是交换a,b的值,显然这种编译器不符合要求。

现在的编译器可以改变他们的值,因为现在的编译器对于这样的操作已经禁止生成临时变量。

假如我不想改变函数参数的值,并且想用引用的形参,那么我可以将形参声明为const,在类型不匹配时,c++将在必要的时候产生临时变量。

有下面程序

#include <iostream>
using namespace std;
void func(const int &a);
int main()
{
        int a = 3;
        long b = 4;
        
        //类型匹配
        cout << "main: ";
        cout << "a: " << a << " &a: " << &a << endl;
        cout << "func: ";
        func(a);

        cout << endl; 
        
        //类型不匹配
        cout << "main: ";
        cout << "b: " << b << " &b: " << &b << endl;
        cout << "func: ";
        func(b);

        return 0;
}

void func(const int &a)
{
        cout << "a: " << a;
        cout << " &a: " << &a << endl;
}

执行后:

main: a: 3 &a: 0xbff0be9c
func: a: 3 &a: 0xbff0be9c

main: b: 4 &b: 0xbff0be98
func: a: 4 &a: 0xbff0be94
相关阅读 更多 +
排行榜 更多 +
疯狂兔子人乐园

疯狂兔子人乐园

休闲益智 下载
空中飞机飞行

空中飞机飞行

休闲益智 下载
小姐姐历险记2

小姐姐历险记2

休闲益智 下载