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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangmeng 中级黑马   /  2015-8-25 08:05  /  530 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

指针总结

指针的本质就是一个能存地址的数据类型,其包含这个地址,同时含有一个步长信息
步长:就是加一或减一时移动的字节数.

用法:
    定义
        指针类型 *指针名;
    赋值
        指针名=地址;
    操作
        1.对指针的操作--根据类型确定字节数
            1.向高位移动(+) :如:p+1(p不变),++p(p变化);
            2.向低位移动(-) :如:p-1;--p;
        2.对指针所指空间的操作
            1.取值 如:*p
            2.赋值 如:*p=值

应用场景:
1.指针与基本数据类型(int char double float)
    应用举例:
        定义:int *p;
        赋值:int a=1; p=&a;
        操作:
            1.对指针的操作
                *对数据本身无意义.(越界了)
            2.对指针所指空间的操作
                1.取值
                    int b=*p;
                2.赋值
                    *p=3;



2.指针与构造数据类型中的用法(数组, 结构体)
数组
    应用举例:
    int arr[3]={1,2,3};
    方法一:用首元素的指针(*推荐)指针运算方便.
        定义赋值:
            int *p=arr;或者:int *p=&arr[0];
        操作:
            1.对指针操作:
                1.向高位移动(+): p+1(p不变),++p(p变化);
                2.向低位移动(-): p-1,--p;
            2.对指针所指空间的操作
                1.取值:
                    取当前位的值: *p或p[0];
                    取下一位的值: *(p+1);或p[1](等效于:arr[当前角标+1]);
      

2 个回复

倒序浏览
有用的笔记 感谢lz分享
回复 使用道具 举报
感谢楼主的分享,很有用啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马