指向数组元素的指针
一个变量有地址,一个数组包含若干元素, 每个数组元素都在内存中占用存储单元,他们都有相应的地址,指针变量既然可以指向变量,当然也可以指向数组元素。所谓数组元素 的指针就是数组元素的地址。
page277image2880.jpg ¬
2、指向数组元素的指针的使用
1)通过指针访问数组元素 在指针指向数组元素时,允许以下运算:
加一个整数(用+或+=),如p+1
减一个整数(用-或-=),如p-1
自加运算,如p++,++p
自减运算,如p--,--p
两个指针相减,如p1-p2 (只有p1和p2都指向同一数组中的元素时才有意义)
2)两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。 实际上是两个指针值(地址)相减之差再除以该数组元素的长度(字节数)。
指向同一数组的两指针变量进行关系运算可表示它们所指数组元素之间存放的关系。 比较存放的位置是高位还是低位高位 >低位的返回真
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a[10]={10,20,30,40,50,60,70,80,90,100};
// 定义一个指针变量 指向数组的第四个元素
int * p1 = &a[3];
//定义了一个指针变量 指向数组的第八个元素
int * p2 = &a[8];
// p2 - p1 相当于 其指向元素之间下标的差 . 也就是相当于 这两个指针指向的元素之间相差几个元素 .
// printf(" %ld ",p2 - p1);
// 表示的含义是 两个指针 指向元素 在数组中 是高位还是低位
printf(" %d ",p2 > p1);
return 0;
} |
|