C++中的*和&符号.

&为取地址运算符,*为间接寻址运算符。

*符号

  • 在定义变量时使用*,表明此变量是一个指针

  • 作用在指针变量之前,表示获取指针指向的值

示例代码:

1
2
3
4
5
int a = 0;
int *b = &a; // b是一个指针变量
cout<<a<<endl;
cout<<b<<endl; // 指针指向的地址,也就是a变量的地址
cout<<*b<<endl; // 获取b指针指向的值

结果:

1
2
3
0
0x7ffeefbff52c
0

&符号

  • 在定义变量时使用,表示此变量是换来变量的引用

  • 在变量前使用,表示获取变量的地址

示例代码:

1
2
3
4
5
6
int a = 0;
int &c = a; // c变量是a变量的一个引用,也可以叫a的一个“副本”
cout<<a<<endl;
cout<<c<<endl;
cout<<&a<<endl;
cout<<&c<<endl; // 所以,a和c的地址是同一地址

结果:

1
2
3
4
0
0
0x7ffeefbff50c
0x7ffeefbff50c