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则可以