重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
目录
望城网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。一、指针是什么?
二、指针和指针类型
2.1、指针类型的意义
2.1.1、指针类型决定了:指针解引用的权限有多大
2.1.2、指针类型决定了:指针走一步,能走多远(步长)
三、野指针
3.1、概念:
3.2、野指针的成因
3.2.1、指针未初始化
3.2.2、指针越界访问
3.2.3、指针指向的空间已释放(无家可归)
3.3、如何规避野指针
3.3.1、指针初始化
3.3.2、小心指针越界
3.3.3、指针指向空间释放,立即置为NULL
3.3.4、指针使用之前检查有效性
四、指针运算
4.1、指针+-整数
4.2、指针-指针
4.3、指针的关系运算
五、指针与数组
5.1、数组名是什么?
5.2、指针与数组关系
六、二级指针
七、指针数组
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的成为“指针”。意思是通过它可以找到以它为地址的内存单元。
注意:内存中的存储单位:字节
总结:
二、指针和指针类型1、指针就是变量,用来存放地址的变量。(存放在指针中的值被当做地址处理),而地址用来唯一标识一块地址空间。
2、指针的大小在32位平台是四个字节,64位平台是8个字节。
变量又不同类型,整型,浮点型等,同理,指针也有类型。
变量有多少类型,指针就有多少类型!
举例:
2.1、指针类型的意义 2.1.1、指针类型决定了:指针解引用的权限有多大2.1.2、指针类型决定了:指针走一步,能走多远(步长)三、野指针 3.1、概念:3.2、野指针的成因 3.2.1、指针未初始化野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明显限制的)。
理解:大街上无人牵着,没人管的狗,我们戏称为:野狗,野指针同理。
p假如是一个局部指针变量,如果不初始化,默认为随机值。
3.2.2、指针越界访问3.2.3、指针指向的空间已释放(无家可归)3.3、如何规避野指针 3.3.1、指针初始化3.3.2、小心指针越界3.3.3、指针指向空间释放,立即置为NULL 3.3.4、指针使用之前检查有效性C语言本身不会检查数据的越界行为,需要编程者保持头脑清醒,保证没有越界。
如何检查?(判断指针:为空—不用,不会空—才用)
四、指针运算4.1、指针+-整数指针运算主要分为三类:
1、“指针+-整数”,
2、“指针-指针”,
3、“指针的关系运算”。
指针+-整数的步长,为指针变量类型的字节长度
4.2、指针-指针指针-指针的前提:两个指针指向同一块空间
指针-指针得到的是两个指针之间的元素个数
应用:编写求字符串长度的函数
4.3、指针的关系运算1、
2、
虽然绝大多数编译器可以让上诉第二个代码可以顺利完成任务,然而我们还是应该避免这样写,因为标准并不保证他可行。
C语言对指针的标准规定:
五、指针与数组 5.1、数组名是什么?允许指向数组元素的指针与指向数组的最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一元素之前的那个内存位置的指针进行比较。
数组名是数组首元素的地址
5.2、指针与数组关系可以将数组名赋值给一个指针,二者等价
int * p = arr; //p存放数组arr的首地址
既然可以把数组名当做地址存放在一个指针中,我们使用指针来访问一个数组就成为可能。即,指针可以指向一个数组。
六、二级指针指针变量也是变量,是变量就有地址,那么指针变量的地址存放在哪里?——二级指针。
同理,我们可不可以写三级指针呢?答案是可行的,理论上我们可写无限指针(禁止套娃!)。但是不常用,三级指针及之后均不常用。
七、指针数组指针数组是指针还是数组?
答案:是数组,是存放指针类型的数组
等同于:整型数组,字符数组
制作不易,喜欢就点赞收藏吧!!!持续更新中~~~
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧