C++中*和&的区别

  • *是取值运算符,对地址使用可以获得地址中储存的数值。 对于指针a,*a表示取a中的值
  • &是地址运算符,对变量使用可以获得该变量的地址。对于变量b,&b表示取b的地址

在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;
在调用时,*p是指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是指针p指向a,*p则等于a的值,即*p=5。
而&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5,而再给b赋值:b=10,a的值也会变为10。