指针和引用

以前对指针这一块的知识点总是停留在表面的理解,往深了思考就感觉什么都不懂,最近在学习C++的时候,也总是一头雾水,所以为了解决这些问题,查阅资料总结了一下。

*和&的概念

*:是解引用运算符,他的作用是将一个指针解引用,也就是获取指针所指向内存地址的内容

&:是取地址运算符,它的作用刚好与解引用运算符相反,是获取一个变量的地址

下面通过小例子来阐述他们的概念和他们之间的关系

int a = 10 ;

int * p;

p = &a;

关于引用

首先我们来探讨一下a,我们都知道a是一个int变量,本质上说a代表一个存储单元。在计算机中,CPU通过该存储单元的地址访

问该单元中的数据,所以a应该代表两个值才对:一个是存储单元的地址,另一个就应该是这个地址里面的数据。但是如果我们

就这样用a的话,系统并不知道我们需要用它的哪个值,这样就会产生二义性。所以为了消除这种二义性,C语言就规定了a表示

存储单元中的数据,&a表示存储单元的地址。

关于指针

int * p ; //定义一个int类型的指针p

所以我们知道p现在是一个指针

p=&a;

此时,p代表指针所指对象的地址,也就是说p现在就是a的地址

*p就代表指针所指对象的地址值,也就是a的值10

 

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值