1.*介绍

变量前加*号,只有在变量为指针情况下才是合法的

当*用于定义时,是标明该变量为指针类型

除此以外,*的作用是取值。

C++中的指针可以理解为一个地址的值,*用于取值时就是取出改地址中存储的值

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int a = 10;
 6     int *p;        // p 为整型指针
 7     
 8     p = &a;      // p 指向a的地址  
 9     cout<<"*p的值为"<<*p<<endl;  //输出*p的值,在这里等于a
10     a = 20;
11     cout<<*p<<endl;   改变a的值就是改变*p的值
12     return 0;
13 }

该程序输出为:

*p = 10;
*p = 20;

可以看到*p的值与a的值同步,可以说*p等于a。

 

2.&介绍

&:一个是取地址符作用,另一个是引用

 

int a;

int*p = &a;    //这就是取地址符,指针p指向对象a。p的值为a的地址。

int b;

int &c = b;    
//这是引用,定义一个引用就是c是b的一个别名。c就是代表的b。
//注意这里的声明引用需要初始化。

注意&是取址符号。但&也可以有另一个用法,就是是其它变量的别名,如int &a=b;此时a就是b,b就是a,改变a的值也就改变了b的值。但声明时必须初始化,不能空声明,如:int &a是错的,int &a = b则可以