C语言学习指针初识

在C语言中,内存单元的地址称为指针,专门用来存放地址的变量,有时对地址,指针和指针变量不区分,统称指针。(地址==指针)

指针的定义: 数据类型 *变量名 例如:int *p

指针的存储类型是指针变量本身存储类型
指针说明时指定的数据类型不是指针变量本身的数据类型,而是指针目标的数据类型,简称为指针的数据类型。
指针在说明的同时,也可以被赋予初值,叫做指针的初始化。

例如: int a = 10;  int *p = &a; 也就是  int a; int *p;  *p = &a;

引入指针要注意程序中的px、*px 和 &px 三种表示方法的不同意义,设px为一个指针,则:
px,指针变量,它的内容是地址量
*px,指针所指向的对象,它的内容是数据
&px,指针变量占用的存储区域的地址,是一个常量

把一个数组的地址赋给具有相同数据类型的指针
int a[20],*pa;
pa = a; //等价于pa = &a[0]

指针占用的字节数:64位机器下占8个字节,32位机器下占4个字节

指针的运算

指针运算是以指针变量所存放的地址量作为运算量而进行的运算

指针运算的实质就是地址的计算

指针运算的种类是有限的,它只能进行赋值运算、算数运算和关系运算。

例如:

px-py运算的结果是两个指针指向的地址位置之间相隔数据的个数。
因此两个指针相减不是两个指针持有的地址值相减的结果。
两个指针相减的结果值不是地址量,而是一个整数值,表示两指针之间相隔数据的个数。

指针和数组的关系

在C语言中 ,数组的指针是指数组在内存中的起始地址,数组元素的地址是指数组元素在内存中的起始地址。
一维数组的数组名为一维数组的指针(起始地址)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值