A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 令狐冲 中级黑马   /  2015-12-1 19:48  /  766 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指向数组元素的指针
            一个变量有地址,一个数组包含若干元素, 每个数组元素都在内存中占用存储单元,他们都有相应的地址,指针变量既然可以指向变量,当然也可以指向数组元素。所谓数组元素 的指针就是数组元素的地址。

           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;
}

3 个回复

倒序浏览
很给力,这点我还不是很明白
回复 使用道具 举报
不错...................../
回复 使用道具 举报
加油 学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马