股票

引用变量

摘自《C++ Primer Plus 5th》
针对C++新增的引用变量

firstref.cpp

 
  1. #include<iostream>
  2. int main()
  3. {
  4.     using namespace std;
  5.     int rats = 101;
  6.     int & rodents = rats;   // rodents is a reference
  7.     cout << “rats = “ << rats;
  8.     cout << “, rodents = “ << rodents << endl;
  9.     rodents++;
  10.     cout << “rat = “ << rats;
  11.     cout << “, rodents = “ << rodents << endl;
  12.     cout << “rats address = “ << &rats;
  13.     cout << “, rodents address = “ << &rodents << endl;
  14.     return 0;
  15. }

程序说明:
下述语句中的&操作符:
int &rodents = rats;
不是地址操作符,而是将rodents的类型声明为 int &, 即int变量的引用。但下述语句中的&操作符:
cout << “, rodents address = ” << &rodents << endl;
是地址操作符,其中&rodents表示rodents引用的变量的地址。下面是程序的输出:
rats = 101, rodents = 101
rats = 102, rodents = 102
rats address = 0x7fff61fb0b84, rodents address = 0x7fff61fb0b84
从中可知,rats和rodents的值和地址都相同(具体的地址和显示格式随系统而异)。将rodents加1将影响着两个变量。更准确的说,rodents++操作将一个有两个名词的变量加1.
引用必须在声明引用时将其初始化,而不能像指针那样,先声明,再赋值。
引用更接近const指针,必须在创建时进行初始化,一旦与某个变量关联起来,就将一直效忠于它。也就是说:
int & rodents = rats;
实际上是下述代码的伪装表示:
int * const pr = &rats;
其中,引用rodents扮演的角色与表达式*pr相同。

打赏
原文链接:,转发请注明来源!

发表评论

  • 1 Responses to “引用变量”
    • 匿名

      测试

      回复