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

    文章

    7604

    浏览量

    136680
  • 指针
    +关注

    关注

    1

    文章

    480

    浏览量

    70551

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    C语言入门教程-指针

    指针C语言中,指针被广泛使用。所以要想完整地掌握C语言,您需要对
    发表于 07-29 11:30 664次阅读

    C语言指针电子教程

    本资料是一份不错的关于C语言指针的电子教程,希望对大家有所帮助... 指针简介 指针C
    发表于 07-30 16:00 77次下载

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

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

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

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

    C语言的精髓——指针详解

    C语言的精髓——指针详解
    发表于 11-30 14:43 17次下载

    简述C语言中什么是悬空指针和野指针

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

    指针才是C语言的精髓

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

    C语言指针的理解使用

    C语言指针的理解使用指针变量的声明给普通变量的赋值对比给指针变量的赋值代*的指针的使用说明
    发表于 01-13 13:42 3次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>指针</b>的理解使用

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

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

    C语言-一维指针定义与使用

    指针在很多书本上都是当做重点来介绍,作为C语言的灵魂,项目里指针无处不在。 这篇文章介绍指针的基本用法。
    的头像 发表于 08-14 10:02 1341次阅读

    C语言进阶】C语言指针的高阶用法

    C语言进阶】C语言指针的高阶用法
    的头像 发表于 08-31 13:24 2317次阅读

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

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

    详解C语言指针底层基本原理

    说到指针,估计还是有很多小伙伴都还是云里雾里的,有点“知其然,而不知其所以然”。但是,不得不说,学了指针C语言才能算是入门了。指针
    的头像 发表于 04-06 10:43 1248次阅读

    C语言指针用法

    C语言编程中善用指针可以简化一些任务的处理,而对于一些任务(比如动态内存分配),必须要有指针才行的。也就是说精通C
    发表于 03-05 14:22 346次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的<b class='flag-5'>指针</b>用法