&的三个含义:位与、引用变量说明符、取地址运算符
*的三个含义:乘、指针变量说明符、取值运算符
【引用】:引用变量与被引用变量同时指向同一内存地址,其一改变,两者都改变。
&——引用变量说明符,xa——引用变量(类型要与x一致,且不能再引用其他变量)
#include <iostream> using namespace std; int main() { int x = 10; int &xa = x;//声明引用变量xa cout << xa<<endl; //10 x = 11; cout << xa; //11 return 0; }
&取地址运算符
int x=10; //定义变量,划定内存,4字节 cout << &x; //程序每次执行时,x的内存地址可能不同,16进制显示
【指针】*指针变量说明符、取值运算符,p指针变量(地址,类型与x一致),*p地址内容。先划定内存,再使用指针
int x; int *p=&x; //定义指针变量p,存储x的地址。int *p; p=&x; *p=10; //该地址内容为10,间接给x赋值 cout<<*p; //10 cout<<p; //x的地址
void类型指针变量:(预先不指定指针变量的类型,之后强制转换。即p可以指向任何类型)
int x=10; void *p=&x; cout<<*(int *)p; //注意强制转换的格式
常变量指针:指向常变量时,使用常变量指针(也可以指向变量,更改指向)
const int x=10; const int *p=&x; cout<<*p;
指针常变量:指针类型的常变量p,不能再更改指向。
int x=10,y=20; int * const p=&x; p=&y; //错误