c语言学习之数组指针

首先指针,就相当于一个地址,指针变量就是拿来存放指针所指向另一变量的地址;定义一个指针变量需要说明:指针类型,指针变量名。例:int *p,a;p=&a; 数组,包括数组类型和数组名还有数组长度(数组长度只能是常量);数组有一维数组和多维数组。例:int a[10];[]内的必须是常量。

究竟什么是数组指针呢?

顾名思义,就是数组的指针。其中,对数组来说,数组名就是数组在内存存放的首地址。因为指针变量是拿来存放另一变量的地址,所以指针变量可以存放数组的地址,也可以存放数组元素的地址。所以引用数组或数组元素可以以使用指针变量。int *p,a[10];p=a(p指向数组a的0号元素);/*因为数组名相当于首地址*/。

指针指向数组时,还可以做一些指针运算。

(1)例:int *p,a[10];p=a;p++;/*  p+1,它指向a[1]  */;指针变量每增加1,地址字节值得增量就等于基类型字节数。(2)两个指针之间还可以相减,得到一个整数,该整数等于二者之间相差的元素个数(两者的地址字节值之差除以基类型字节数)注意:两个指针之间不能进行加、乘、除等算术运算。(3)两个指针类型还可以比较运算(<、<=、>、>=、!=、==),但指针类型不同不能比较,比较时是用它们的地址值进行比较。(4)c语言中设置了“NULL”称为空指针,可以赋给任何指针类型的变量而且可以和任何类型指针做“==和!=”比较,不能做(<、<=、>、>=)比较。

如何通过指针访问数组元素呢?

例如:

int a[10],*p=a;//定义数组和指针变量并让指针p指向数组的首地址。

int i;

其中,表达式p[i]和*(p+i)和*(a+i)和a[i]相等,都表示数组a中i号元素。注意:p+i或a+i则表示b[i]的地址&b[i]。/*  &为取地址符  */ ;还有a是符号常量,不能给a赋值。

c语言对地址不做越界检查,使用指针时自己控制好地址的边界。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值