0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么C语言要引入指针_引入指针的好处是什么

C语言编程基础 来源:网络整理 作者:工程师陈翠 2018-07-28 10:12 次阅读

前言

说起指针算是个 在 CC++ 中老生长谈的话题,但是今天我从另外一个角度给各位看官分析一下为什么非要引入指针这个让人看到都头疼的东西? 想必学过指针的都被它的各种繁琐所折磨,另一种角度讲就是被他的灵活易用所征服。不知道大家学习过只要是带指针的地方,都可用使用非指针的东西去表达出来(你愿意的话),甚至比用指针看着还简便,所以问题也来了,为什么要引入指针呢?好处何在?

正文

在说为什么引入指针这个问题前先带大家了解一下什么是指针?

指针最为简短的定义:指针即为内存的地址。 那什么是内存呢?举个栗子当我们计算 4*(46+4)时,我们人脑会想到先有个中间值 50 然后再计算成 200,计算机也会这样有一个 50 的中间值,我们人脑在计算的时候50 这个中间值保存在我们的万能的脑子中,计算机在出现最终答案前也会把这个中间值一个方便它进行下一步计算的地方,这地方就是内存,实际上我们写程序的时候定义的所有变量都保存在内存中,可以想象一个大的程序所占用的内存是不容小觑的,在计算机刚被制造出来的时候那些大佬是如何节省每一个字符的。至今内存的占用是每一个合格的程序员所需要注意的事情,至此我们得出一个结论:写程序需要尽可能少的内存。

那么内存的地址又是什么呢?这个说来话长,不了解的可以到网上和书上查看一下,每个地方都会有很多叙述。假如我们定义了char a=’A’,当需要使用这个‘A’时,除了直接调用变量a,另一种方式就是调用a的地址,即指向a的指针p(假设定义了char *p=&a)。这里请思考一个问题:究竟是a占用的内存大呢还是p占用的内存大,a显然只占了一个字节(char类型),p呢?p 占用了 4 个字节。既然p中存储的是a的地址,也就是说这个问题实际演变为了内存的地址需要多少位(bit)来编码。再假如我们定义的char a1[30]="C语言程序设计能够让你成为优秀的程序员"占用 30 个字节,也有一个char *p1=a1 这个时候 a1占用 30 个字节而 p1 占用4个字节(字符串地址 = 首字符地址)。 那么假如你要引用的是一个 5G 的东西(这个应该是CPU总线的地址不懂的暂时叫这个东西)用指针也还是 4 个字节即可。由此我们得出结论:使用指针型变量在很多时候占用更小的内存空间。

明白了引入指针的好处,我们再来看一个例子,第一节课是1班语文,2班数学,第二节课颠倒过来,1班要上数学,2班要上语文,那么第一节课下课后需要怎样作调整呢?方案一:课间1班学生全都去2班,2班学生全都来1班,当然,走的时候要携带上书本、笔纸、零食……场面一片狼藉;方案二:两位老师课间互换教室。怎样,有没有发现这个例子很像一道题目“请交换变量a和变量b的值”,现在,大家知道怎么做是最优解了么?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7522

    浏览量

    127493
  • 指针
    +关注

    关注

    1

    文章

    469

    浏览量

    70360

原文标题:经验 | 一文了解 C语言 为什么要引入指针?

文章出处:【微信号:xx-cyy,微信公众号:C语言编程基础】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谈谈C语言中指针有什么好处,请各位高手们谈谈自己的体会

    谈谈C语言中指针有什么好处,请各位高手们谈谈自己的体会...
    发表于 09-01 17:38

    C语言指针详解

    ];//指针的类型是 int(*)[3] (5)int*(*ptr)[4];//指针的类型是int*(*)[4] 怎么样?找出指针的类型的方法是不是很简单? 完整的C
    发表于 07-04 03:34

    c语言指针详解

    精练而高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环, 能否正确理
    发表于 03-26 09:51

    为什么C语言避免使用Null指针

    为什么C语言避免使用Null指针呢?指针作为数组的应用有哪些呢?
    发表于 12-20 07:19

    指针到底是什么?指针变量和普通变量的区别

    文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言指针对于很多初学C语言的人来说是一个十分复杂比较抽象的知识,今天就带大家一起来揭开
    发表于 02-14 07:00

    C语言中的指针是什么?如何规避野指针

    C语言中的指针是什么?有哪几种类型?指针有何作用?如何规避野指针
    发表于 02-25 06:47

    C语言指针电子教程

    本资料是一份不错的关于C语言指针的电子教程,希望对大家有所帮助... 指针简介 指针是C语言中广泛使用的一种数据类型。 运用
    发表于 07-30 16:00 77次下载

    C语言指针函数和函数指针详细介绍

    C语言指针函数和函数指针详细介绍。。。。。。。
    发表于 03-04 15:27 5次下载

    c语言函数指针定义,指针函数和函数指针的区别

     往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂。下面就由小编详细为大家介绍C语言中函数指针指针函数和函数
    发表于 11-16 15:18 3394次阅读

    C语言中的野指针是怎么来的?

    一、什么是野指针指针是C语言的灵魂,同时也是很容易让人犯错的重难点,用错了指针将是一个灾难。 指针变量的本质是值,这个特殊的值是一个内存
    的头像 发表于 06-01 16:43 2318次阅读

    指针才是C语言的精髓

    文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言指针对于很多初学C语言的人来说是一个十分复杂比较抽象的知识,今天就带大家一起来揭开指针的神秘面纱。提示:以
    发表于 12-09 13:06 14次下载
    <b class='flag-5'>指针</b>才是C<b class='flag-5'>语言</b>的精髓

    C语言中的指针(重点)超详细

    C语言中的指针1、指针是什么2、指针指针类型2.1、指针 + - 整数2.2、
    发表于 01-13 14:10 11次下载
    C<b class='flag-5'>语言</b>中的<b class='flag-5'>指针</b>(重点)超详细

    【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?

    【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?
    的头像 发表于 08-31 13:21 1668次阅读

    C语言中的悬空指针和野指针是什么意思?

    提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野
    的头像 发表于 02-09 17:20 782次阅读

    C语言中什么是指针数组

    在C语言中一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。
    的头像 发表于 03-10 15:26 1263次阅读