学习笔记之C++指针

用一个通俗的例子解释:我们去银行存取款时,银行工作人员将根据我们的账号去找我们的存款单,找到后在存款单上写上存取款的金额,在这里账号就是存款单的指针,存款数就是存款单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。‘

一个指针是一个地址(或首地址),是一个常量;而一个指针变量却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。为了避免混淆,我们约定,“指针”是指地址,是常量,“指针变量”是指取值为地址的变量。定义指针的目的是为了通过指针去访问内存单元。

1. 定义指针

C++中,定义指针方式如下:

类型名  *变量名;

其中符号“*”表示定义指针变量;类型表示该指针变量能指向对象的类型,也成为指针变量的基类型。

例如:int *p表示指针变量能指向整型变量,p的基类型为整型,也称p为整型指针。

定义指针变量时也可以指定其初值,如int a,*p=&a;

2. 间接访问运算

定义指针之后,指针指向的对象可以表示为:*指针

此时的符号“*”是指针运算符,或叫间接访问运算符,用来访问其后指针所指的对象,与指针定义处的“*”含义、功能不同。指针运算符“*”右面的对象只能是指针变量、地址或者值为地址的表达式。p表示&a,*p表示a,*&a表示a,&*p表示p。

3. 指针变量的赋值

程序运行时可使用赋值运算修改指针的值。可以将变量的地址赋给指针变量,也可将一个指针变量的值付给另一个指针变量,还可以赋NULL值。

例如:int i,*p1,*p2,*p3;

p1=&i;

p2=p1;

p3=NULL;

4. 指针的加减运算

指针可以与整数进行加减运算得出新的地址值。在对指针进行加、减整数n时,其结果不是直接加、减n,一般是加、减“n×sizeof(指针基类型)”。相同基类型的指针可以相减,结果是两指针(地址)值相隔的存储空间个数,一个存储空间一般包含sizeof(指针基类型)个字节。两个指针不能相加,无论其基类型是否相同。

5. 指针的关系运算

相同基类型的两个指针可以进行各种关系运算,指向低(小)地址端存储单元的指针小于指向高(大)地址端存储单元的指针。

6. 指针做函数参数

指针变量可以作为函数定义时的形参,对应的实参用地址或者指针变量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值