栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言指针初阶

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言指针初阶

1.什么是指针

在计算机科学中,指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储其中的另一个地方的值,由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元,因此降低至形象化的称为指针,意思是通过它能找到以它为地址的内存单元

通俗的来讲,

指针

指针是个变量,存放内存单元的地址

2.指针和指针类型

指针和普通的变量一样,也拥有多种变量类型

同时,值得注意的是,指针变量的类型要根据取变量的地址的数据类型来定

 

像这种情况就会发生数据类型不兼容的错误

3.指针类型意义

3.1指针类型决定了解引用的权限有多大

 通过解引用之后,a变成了0

而这种情况下,指针变量类型为char* 而char所占大小只占一个字节,当它对指针变量进行解引用操作时,就只更改了一部分的数值。

这就是与由于指针变量类型的不同而造成的权限不同。

3.2指针类型决定了走一步走多远

 由上图所示,当指针变量为int*时,对其变量进行加一,其地址的大小增加了4,也就是int所占字节大小,而char*类型的指针变量只增加了1.

 

 4.野指针

野指针就是指指针指向的位置时不可知的(随机的,不正确的,没有明确限制的)

4.1野指针产生的原因

  1 野指针未初始化

 像这种情况,没有给指针进行初始化,就会给指针变量赋予一个随机值,然后对其指针变量进行解引用就是非法的内存访问

2  指针的越界访问

 像这种情况,循环超过了十次,第十一次指针指向的位置并不是已经给定好了的空间,就相当于时指针越界访问。

3 地址内存释放越界

 像这种情况,因为当上面的test方法访问完之后,他的空间就已经释放了,而这时对其取到返回的地址也是一个越界。

避免指针越界

        1初始化指针

        2小心指针越界

        3指针指向空间释放及时置为null

        4指针使用之前判读有效性

5.指针运算

        1指针+-整数

 通过p++自增的操作,使得地址不断的变化,将arr[]数组一次进行赋值。

         2指针-指针

 指针-指针得到的就是一段内存空间当中元素的个数。(arr数组名为首元素地址,arr+9就是最后一个元素的地址)

       

6.指针和数组

数组名就是数组首元素的地址

 

7.二级指针

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号