C++笔试题笔记

来源:互联网 发布:拳击 书 知乎 编辑:程序博客网 时间:2024/05/18 00:02

#include<iostream>

#include<string>

using namespace std;

 

int main(int argc,char* argv[])

{

             int a = 10;

             int b = 20;

             int &m = a;

             int equal;

 

             m = b;

             cout<<"a = "<<a<<endl;

             cout<<"b = "<<b<<endl;

 

 

 

             m = 100;

 

             cout<<"a = "<<a<<endl;

             cout<<"b = "<<b<<endl;

 

             equal = (&a==&b)?1:0;

 

             cout<<"equal = "<<equal<<endl;

 

             return 0;

}

 

结果:

a= 20;

b = 20;

a = 100;

b = 20;

equal = 1;

 

 

前面的都好理解,最后一个equal = 1;是因为一个一般变量引用的时候,当m被声明为a的引用的时候,m不需要另外开辟内存空间,而是与a占用同一个内存单元。它们具有同一地址。所以equal的值为1。

 

这也正应验了我前两天心里存在的一个疑问,我当时觉得引用需要开辟新的内存空间,但是一个公司里的工程师认为不需要,他觉得既然是变量必然需要开辟内存空间。

 

所以以后当自己觉得自己的想法是对的时候不要轻易被别人的想法所影响,甚至改变,一定要坚守自己的想法,因为别人的想法不一定对。

引以为鉴!