<kbd id="daqct"></kbd>

  • <nav id="daqct"></nav>
    <wbr id="daqct"><pre id="daqct"></pre></wbr>
    <wbr id="daqct"></wbr>
    <form id="daqct"><th id="daqct"></th></form>
    更多課程 選擇中心

    C/C++培訓
    達內IT學院

    400-111-8989

    C語言指針專題——使用指針要注意這些

    • 發布:C++培訓
    • 來源:學習筆記
    • 時間:2017-07-24 17:22

    C語言中,指針的概念有點難懂,使用起來稍微不注意,也會遇到各種問題。在本文中,我列舉出了幾個使用指針不當的方式,希望朋友們在編程實踐中也多多注意。

    一、野指針

    野指針這個東東是經常被人提及的,其危害也是大家有目共睹的。我很早之前寫過一篇文章來說明野指針的,鏈接是:

    C程序中可怕的野指針 - 知乎專欄

    有興趣的朋友可以看看,這里就不多廢話了!

    二、越界訪問

    越界訪問最常見的就是使用指針訪問數組元素了。比如下面這段代碼:

    代碼很好理解,就是用一個指針p,逐個訪問數組的每個元素,并打印出來。

    當index為3的時候,p + index此時就越出數組的長度了,那么*(p + index)訪問的就是數組以外的內容,輸出啥呢?看下面的輸出結果:

    最后一個數字,是2293468,這是數組以外的元素。

    本例中還好,對數組以外的內容只是讀取一下而已,如果是寫操作的話,會發生什么,看你的人品了!

    三、指針不可相加

    兩個指針相加,你見過嗎?相乘呢?看下面的代碼:

    我運行了下,報了一個錯:

    先不去管這個錯誤,我們可以自己想想,兩個指針相加,有什么意義呢?指針的值,也是一個數字,只不過這個數字是別人的一個地址,兩個指針相加,就是兩個地址值相加,確實沒啥意義!

    但是如果兩個指針相減呢?如代碼中指針q減去指針p,這個就是有意義了,意義就在于兩個指針相隔幾個int型元素。有興趣的朋友可以改下代碼看看。

    四、多個指針指向同一個常量區域

    從結果中可以看到,指針p與q的值是一樣的,也就是說,指針p與指針q是指向同一個字符串“12345”,而指針p與指針r就各自指向各自的字符串了。

    對于常量字符串“12345”而言,在程序期間,只有自己這一個實體,沒有其它的拷貝,指針p和指針q都指向它,這樣設計可以節約存儲空間。

    五、小心sizeof(指針)的用法

    關于sizeof(指針),計算的是指針變量本身占用的字節數,認識不到這一點,就會鬧出笑話,比如下面的程序:

    在函數print中,原意是希望通過“sizeof(number) / sizeof(number[0])”來計算出數組的大小,來一個一個輸出數組的元素。可實際上呢,根本不是。運行結果如下:

    結果只輸出了一個元素。

    函數print的形參number雖然寫的是數組的形式,但是實際上它是一個指針,

    sizeof(number) 計算的是指針本身占用的字節數,為4;

    sizeof(number[0])計算的是int整型變量占用的字節數,也為4;

    因此for循環只循環了一次就結束了。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:C++ 中命名空間的 5 個常見用法
    下一篇:C語言運算符盤點,C語言運算符知識點講解

    C語言創建windows窗口實例

    C++回調函數是什么?

    C++ shared_ptr和動態數組

    C語言有哪些關鍵詞,C語言44個關鍵詞大全

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美三级片,白洁外传,第四色播日韩AV第一页,啪啪免费观看大全av 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>