C++中的指针运算符(& 和 *)

C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *。

用int类型做例子,首先要区分int*,int&,*,&这四个的区别。

int*

int * 是int类型的指针。什么是指针呢?就是存放地址的变量类型。我们知道地址一般是一个8位的16进制数,比如012FF80C。虽然看上去是串数字,但是它并不能用整形或浮点型来存放。对于某个"类型"(比如float)的地址,只能用这个“类型“的指针类型 "类型 * "(比如float *)来存放。

int&

“类型&”是c++独有的类型,即引用。引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价。由于引用不是定义一个新的变量或对象,因此内存不会为引用开辟新的空间存储这个引用。

 #include<iostream>
 using namespace std;
 int main(){
     int a=10;
     int &b=a; 
     cout<<b<<" "<<a<<endl;
     b=5;
     cout<<b<<" "<<a<<endl;
 }

结果是10 10 5 5。
b=5;是将5赋值给b,也就是a的引用,就相当于把5赋值给a。

&

"&"即取地址运算符。& 是一元运算符,返回操作数的内存地址。比如int a是一个整形变量,则&a就是a的地址。

*

“*” 即间接寻址运算符。 * 是一元运算符,返回操作数所指定地址的变量。

 #include<iostream>
 using namespace std;
 int main(){
     int a=10;
     cout<<a<<endl;
     int* b=&a; //b是a的指针,存放a的地址
     *b=5;//*b返回了a的地址的变量,即a
     cout<<a<<endl;
 }

ps:int*&a 是int指针的引用,可以理解成(int*) &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值