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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 占晓 中级黑马   /  2016-9-15 00:58  /  1648 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#pragma mark - 8.指针的存储,指针是什么?指针类型,指针类型,指针运算,const关键字

8.指针的存储,指针是什么?指针类型,指针运算,const关键字

            1\指针的存储:指针用来保存另外一个变量的地址

            2\地址就是指针,指针就是地址

            3\指针类型
                1>基本数据类型指针:int *p......等
                2>结构体指针:指向结构体的指针 struct Student *myStudentP;
                3>数组指针:指向数组的指针:通过指针操作数组中的元素(-----五种遍历数组方式)
                4>函数指针:指向函数的指针: void(*sumP)(int v1, int v2);(PS:与OC中的block相似)
                补充:文件指针 FILE *P
                拓展:OC中的指向对象的指针

            4\指针运算:
                1>指针与整数之间的运算
                        指向数组的指针,通过与整数的加减运算操作数组的元素(指针遍历数组)
                        "指针 + 1 == 指针的值 + sizeof(所指向的元素的数据类型)"
                2>指针与指针之间的运算
                        只能做减法运算:代表两个指针指向的变量之间相差多少个单位变量(前提:这两个指针必须指向同一个数组的元素)
                3>指针与指针之间的比较运算
                        它可以判断两个指针指向的变量的地址,谁在高地址,谁在低地址
                        也可以使用 "==" "!=" 判断两个指针指向的地址是不是同一个地址

            5\const关键字:
                1>修饰基本数据类型和数组:变量的值不能改变,数组元素的值不能修改
                2>修饰指针:   常量指针: const在*号的左边,无法通过指针修改指向变量的值,但可以改变指针变量的指向(值)。
                            指针常量:const在*号的右边,指针的指向(值)不能修改,指针指向的变量的值可以修改
                            *号左边和右边都有const的时候,既不能修改指针的值,也不能修改指针指向的变量的值

            补充:使用场景--当某些数据是固定的,在整个程序运行期间都不会发生变化,并且也不希望别人修改,const修饰
                当函数的参数是1个指针的时候,为了防止函数的内部修改实参变量值,const修饰




#pragma mark -

1 个回复

倒序浏览
感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马