C++的指针和引用真是一个令人头痛的问题,不过我相信,只要有点计算机素养的人,看了下面两个函数,仔细理解了,就能区分它们之间的区别了,这两个函数是从菜鸟教程里面抄过来的
首先,我们要理解,C++中,任何变量,都可以直接获取他们在内存中的地址,用符号&
即可,如下
void preTest()
{
int a = 1;
double b = 2;
thread MyThread;
cout << "a的地址为:" << &a << endl;
cout << "b的地址为:" << &b << endl;
cout << "线程MyThread的地址为:" << &MyThread << endl;
}
效果:
我们知道怎么获取每个量的指针,那么我们真么存这些个地址呢?就是你了,指针
指针
指针是一个变量,其值是另一个变量的地址
有了之前取地址的理解,下面这个函数就更简单了
void test01()
{
int value = 10;
int* ip;
ip = &value;
cout << "value of value:" << value << endl;
cout << "address stored in ip variable" <<ip<< endl;
cout << "value of *ip variable" << *ip << endl;
}
引用
引用变量是一个别名,也就是说,他是某个已经存在的变量的另一个名字
void test02()
{
int i = 1;
int& ii = i;
cout << "i:" << i << endl;
cout << "ii:" << ii << endl;
++i;
cout << "i:" << i << endl;
cout << "ii:" << ii << endl;
}
下一节,我们将深入了解指针的各种特殊的用法
下下一节,我们讲深入了解引用的各种特殊用法