0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么C語言要引入指針_引入指針的好處是什么

C語言編程基礎 ? 來源:網絡整理 ? 作者:工程師陳翠 ? 2018-07-28 10:12 ? 次閱讀

前言

說起指針算是個 在 CC++ 中老生長談的話題,但是今天我從另外一個角度給各位看官分析一下為什么非要引入指針這個讓人看到都頭疼的東西? 想必學過指針的都被它的各種繁瑣所折磨,另一種角度講就是被他的靈活易用所征服。不知道大家學習過只要是帶指針的地方,都可用使用非指針的東西去表達出來(你愿意的話),甚至比用指針看著還簡便,所以問題也來了,為什么要引入指針呢?好處何在?

正文

在說為什么引入指針這個問題前先帶大家了解一下什么是指針?

指針最為簡短的定義:指針即為內存的地址。 那什么是內存呢?舉個栗子當我們計算 4*(46+4)時,我們人腦會想到先有個中間值 50 然后再計算成 200,計算機也會這樣有一個 50 的中間值,我們人腦在計算的時候50 這個中間值保存在我們的萬能的腦子中,計算機在出現最終答案前也會把這個中間值一個方便它進行下一步計算的地方,這地方就是內存,實際上我們寫程序的時候定義的所有變量都保存在內存中,可以想象一個大的程序所占用的內存是不容小覷的,在計算機剛被制造出來的時候那些大佬是如何節(jié)省每一個字符的。至今內存的占用是每一個合格的程序員所需要注意的事情,至此我們得出一個結論:寫程序需要盡可能少的內存。

那么內存的地址又是什么呢?這個說來話長,不了解的可以到網上和書上查看一下,每個地方都會有很多敘述。假如我們定義了char a=’A’,當需要使用這個‘A’時,除了直接調用變量a,另一種方式就是調用a的地址,即指向a的指針p(假設定義了char *p=&a)。這里請思考一個問題:究竟是a占用的內存大呢還是p占用的內存大,a顯然只占了一個字節(jié)(char類型),p呢?p 占用了 4 個字節(jié)。既然p中存儲的是a的地址,也就是說這個問題實際演變?yōu)榱藘却娴牡刂沸枰嗌傥?bit)來編碼。再假如我們定義的char a1[30]="C語言程序設計能夠讓你成為優(yōu)秀的程序員"占用 30 個字節(jié),也有一個char *p1=a1 這個時候 a1占用 30 個字節(jié)而 p1 占用4個字節(jié)(字符串地址 = 首字符地址)。 那么假如你要引用的是一個 5G 的東西(這個應該是CPU總線的地址不懂的暫時叫這個東西)用指針也還是 4 個字節(jié)即可。由此我們得出結論:使用指針型變量在很多時候占用更小的內存空間。

明白了引入指針的好處,我們再來看一個例子,第一節(jié)課是1班語文,2班數學,第二節(jié)課顛倒過來,1班要上數學,2班要上語文,那么第一節(jié)課下課后需要怎樣作調整呢?方案一:課間1班學生全都去2班,2班學生全都來1班,當然,走的時候要攜帶上書本、筆紙、零食……場面一片狼藉;方案二:兩位老師課間互換教室。怎樣,有沒有發(fā)現這個例子很像一道題目“請交換變量a和變量b的值”,現在,大家知道怎么做是最優(yōu)解了么?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7613

    瀏覽量

    137240
  • 指針
    +關注

    關注

    1

    文章

    480

    瀏覽量

    70585

原文標題:經驗 | 一文了解 C語言 為什么要引入指針?

文章出處:【微信號:xx-cyy,微信公眾號:C語言編程基礎】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    為什么C語言避免使用Null指針

    為什么C語言避免使用Null指針呢?指針作為數組的應用有哪些呢?
    發(fā)表于 12-20 07:19

    C語言入門教程-指針

    指針C語言中,指針被廣泛使用。所以要想完整地掌握C語言,您需要對
    發(fā)表于 07-29 11:30 ?673次閱讀

    C語言指針電子教程

    本資料是一份不錯的關于C語言指針的電子教程,希望對大家有所幫助... 指針簡介 指針C
    發(fā)表于 07-30 16:00 ?77次下載

    C語言指針函數和函數指針詳細介紹

    C語言指針函數和函數指針詳細介紹。。。。。。。
    發(fā)表于 03-04 15:27 ?5次下載

    c語言函數指針定義,指針函數和函數指針的區(qū)別

     往往,我們一提到指針函數和函數指針的時候,就有很多人弄不懂。下面就由小編詳細為大家介紹C語言中函數指針,
    發(fā)表于 11-16 15:18 ?3630次閱讀

    C語言的精髓——指針詳解

    C語言的精髓——指針詳解
    發(fā)表于 11-30 14:43 ?17次下載

    簡述C語言中什么是懸空指針和野指針

    提起C語言大部分開發(fā)者很自然就會想到指針二字,沒錯,作為C的核心和靈魂,它的地位咱們就不再贅述了,今天我們想跟大家講的是指針中的兩個特有名詞
    的頭像 發(fā)表于 03-18 11:18 ?2443次閱讀

    指針才是C語言的精髓

    文章目錄前言一、pandas是什么?二、使用步驟1.引入庫2.讀入數據總結前言指針對于很多初學C語言的人來說是一個十分復雜比較抽象的知識,今天就帶大家一起來揭開
    發(fā)表于 12-09 13:06 ?14次下載
    <b class='flag-5'>指針</b>才是<b class='flag-5'>C</b><b class='flag-5'>語言</b>的精髓

    C語言指針的理解使用

    C語言指針的理解使用指針變量的聲明給普通變量的賦值對比給指針變量的賦值代*的指針的使用說明
    發(fā)表于 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、指針
    發(fā)表于 01-13 14:10 ?11次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>指針</b>(重點)超詳細

    C語言-一維指針定義與使用

    指針在很多書本上都是當做重點來介紹,作為C語言的靈魂,項目里指針無處不在。 這篇文章介紹指針的基本用法。
    的頭像 發(fā)表于 08-14 10:02 ?1373次閱讀

    C語言進階】C語言指針的高階用法

    C語言進階】C語言指針的高階用法
    的頭像 發(fā)表于 08-31 13:24 ?2362次閱讀

    C語言中的懸空指針和野指針是什么意思?

    提起C語言大部分開發(fā)者很自然就會想到指針二字,沒錯,作為C的核心和靈魂,它的地位咱們就不再贅述了,今天我們想跟大家講的是指針中的兩個特有名詞
    的頭像 發(fā)表于 02-09 17:20 ?1117次閱讀

    詳解C語言指針底層基本原理

    說到指針,估計還是有很多小伙伴都還是云里霧里的,有點“知其然,而不知其所以然”。但是,不得不說,學了指針C語言才能算是入門了。指針
    的頭像 發(fā)表于 04-06 10:43 ?1294次閱讀

    C語言指針用法

    C語言編程中善用指針可以簡化一些任務的處理,而對于一些任務(比如動態(tài)內存分配),必須要有指針才行的。也就是說精通C
    發(fā)表于 03-05 14:22 ?381次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>指針</b>用法