当前位置: 首页 > news >正文

企业做英文网站谷歌google play下载

企业做英文网站,谷歌google play下载,嘉定区建设局网站,wordpress custom fields目录 什么是指针? 指针和指针类型 指针的类型 指针类型的意义 指针-整数 指针的解引用 指针 - 指针 指针的关系运算 野指针 什么是野指针? 野指针的成因 如何规避野指针? 二级指针 什么是指针? 在介绍指针之前&#…

目录

什么是指针?

指针和指针类型

指针的类型

指针类型的意义

指针+-整数

指针的解引用

指针 - 指针

指针的关系运算

野指针

什么是野指针?

野指针的成因

如何规避野指针?

二级指针


什么是指针?

        在介绍指针之前,我们需要先对内存与地址有一个认识。

        内存:内存是计算机重要且珍贵的硬件资源,计算机上所有的程序的都是运行在内存中的。为了能够合理有效的使用内存,就把内存划分为一个个小的内存单元

        那么这个内存单元应该多大呢?

        如果内存单元太小则不方便使用,太大则可能会浪费内存资源,在经过仔细的计算和权衡后设计者发现将一个字节作为内存单元的大小是最合适的。

        划分好内存后,如何有效的访问到每个内存单元呢?

        在现实生活中定位居住地址时,相比起某某酒店第三层从左侧数第七个房间这样的表述形式,给每个房间一个唯一的号码如307就可以更快速更准确的找到指定地址,同理,我们通过给内存空间一个唯一的号码来更有效的访问内存单元,这个行为就称为编址(地址)

        那么应该如何编址,以及每个地址对应多大的空间?

        众所周知,计算机只能识别0,1这样的二进制数。对于32位的计算机而言一共有32根地址线(物理电线),每根地址线可以产生两种电信号:高电平和低电平。两种电信号分别对应二进制的0和1,32根地址线一共可以产生2^32种电信号,如下:

        00000000 00000000 00000000 00000000
        00000000 00000000 00000000 00000001
        ...
        11111111 11111111 11111111 11111111

经过仔细的计算和权衡后我们发现一个字节(一个内存单元)给一个号码是比较合适的,这些号码就被称为内存单元的地址。每一个地址可以维护一个内存单元,2^32个地址就可以维护2^32个内存单元(4GB),因此对于32位的机器而言,最大可以维护4GB的内存空间,同理可得64位机器最大可以维护2^64个字节的内存空间。

        什么是指针?

        指针是内存中一个最小单元的编号,即指针实际上就是地址。而我们平时口语中所说的指针,通常指的是指针变量,是用来存放内存地址的变量。

指针和指针类型

        指针的定义和初始化:

        指针的使用:

        指针的应用场景:

        1.有些时候我们无法直接使用变量名来操控想要控制的变量,从而使用指针来间接操控变量(传址调用)。

        2.可以节省空间,提高运行效率。

        函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,就会会导致性能的下降,而指针大小只有4(32位)或8(64位)字节,因此在这种情景下传指针可以有效节省空间并提高运行效率。

        指针的大小:

        指针是用来存放地址的,在32位的机器上,地址是32个0或者1组成二进制序列,一个比特位(bit)可以存储一个二进制位,一个字节(byte)有8个比特位,因此需要4个字节才能存下地址,即指针变量的大小就应该是4个字节。同理可得在64位的机器上,指针变量的大小应该是8个字节。

        指针的大小在32位平台是4个字节,在64位平台是8个字节。

指针的类型

        众所周知,数值变量都是有类型的,如:char, int, float, double等,那么指针有类型吗?答案是有的。

指针类型的意义

        众所周知,其他变量之所以有各种类型一是需要表示不同类型的数据如:整型,浮点型等,二是为了更合理的使用内存空间如:char,short,int等,而任何指针的大小都是4或8字节,那指针的类型有什么意义呢?难道仅仅是为了表示所指向的变量是什么类型?

        指针的类型决定了指针的权限。

指针+-整数

        指针的类型决定了指针 +n(-n)前进(后退)多大的距离(zieof(类型) * n)。

指针的解引用

        指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。比如: char* 的指针解引用就只能访问一个字节,而 int* 的指针的解引用就能访问四个字节。

指针 - 指针

        指针 - 指针的绝对值计算的是两个地址之间的元素个数。注:只有指向同一片空间且是同一类型的指针相减才有实际意义!

指针的关系运算

        指针是可以进行关系运算的:

sp:

        C语言标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。

野指针

        在有些场景下,我们并不会在创建指针后就立刻使用它,为了避免它成为一个野指针,我们需要将它初始化成 NULL(置空),NULL是一个为了避免未使用或不再使用的指针变量成为一个野指针而定义的宏。

什么是野指针?

        概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)。通俗的讲,不知道明确指向的,指向非法空间的指针就是野指针。

        野指针可能带来的危害:

        1.指向不可访问的地址。危害:触发段错误。
        2.指向一个可用的,但是没有明确意义的空间。危害:程序可以正确运行,但通常这种情况下,我们就会认为我们的程序是正确的没有问题的,然而事实上就是有问题存在,所以这样就掩盖了我们程序上的错误。
        3.指向一个可用的,而且正在被使用的空间。危害:如果我们对这样一个指针进行解引用,对其所指向的空间内容进行了修改,但是实际上这块空间正在被使用,那么这个时候变量的内容突然被改变,当然就会对程序的运行产生影响,因为我们所使用的变量已经不是我们所想要使用的那个值了。通常这样的程序都会崩溃,或者数据被损坏。

        总而言之,野指针的危害极大!!!

野指针的成因

1.指针未初始化就直接使用

2.指针的越界访问

3.指针指向的空间已经释放

如何规避野指针?

        1. 指针初始化。

        2. 小心指针越界
        3. 指针指向空间释放,及时置NULL
        4. 避免返回局部变量的地址
        5. 指针使用之前检查有效性

二级指针

        众所周知,指针变量也是变量,而变量都是有地址的,所以指针变量也有地址。我们把指向普通类型(非指针类型)变量的指针变量称为一级指针,把指向一级指针的指针变量称为二级指针,即二级指针是用来存放一级指针的地址的。三级指针同理。

http://www.15wanjia.com/news/33339.html

相关文章:

  • 网站logo多大短视频推广引流方案
  • 宿迁宿城区屠园乡网站建设优化seo是什么
  • 门户网站建设管理总则关键词快速排名seo怎么优化
  • wordpress do_shortcodeseo网站seo
  • 在线做网站有哪些平台淘宝推广工具
  • 短网址生成器哪个靠谱免费优化推广网站的软件
  • 免费建站还用学做网站吗企业培训考试app
  • 区域城市分站网站怎么做公众号软文是什么意思
  • 怎么做电子商务的网站seo咨询推广找推推蛙
  • discuz做网站网络推广销售是做什么的
  • 怎么样做微网站最新域名查询
  • 网站平台建设情况汇报中央常委成员名单
  • 网站首页改版太原百度关键词排名
  • 国外自建站怎么样2023年新冠疫情最新消息
  • 做化妆品的网站有哪些哈市今日头条最新
  • 温州做网站的抖音搜索关键词推广
  • 怎样利用网站做引流企业管理软件
  • 做网站需要掌握的技术企业邮箱账号
  • 厦门网站建设创建有哪些搜索引擎优化到底是优化什么
  • 微信公众平台官网注册小程序北京网站优化体验
  • 网站怎么增加代码专业软文发稿平台
  • 珠宝 网站模板自助建站系统下载
  • 网站建设要用什么软件百度推广后台登录页面
  • 毕业设计做网站有哪些方面买域名
  • 学做招投标的网站近几天发生的新闻大事
  • 做国际交友网站翻译深圳百度关键词
  • 国外被动收入网站做的好的厦门seo网站排名优化
  • 深圳商业网站建设推荐公司百度权重划分等级
  • 专业做网站 优帮云上海百度推广排名
  • 跨境出口b2c平台有哪些百度推广优化排名怎么收费