精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

C語言中指針變量簡述

嵌入式應用開發 ? 來源:嵌入式應用開發 ? 作者:嵌入式應用開發 ? 2022-09-09 08:55 ? 次閱讀

指針是變量,那必然會有變量類型,因此這里必須對變量類型做解釋。在C語言中,所有的變量都有變量類型,整型、浮現型、字符型、指針類型、結構體、聯合體、枚舉等,這些都是變量類型。變量類型的出現是內存管理的必然結果,相信讀者知道,所有的變量都是保存在計算機的內存中,既然是放到計算機的內存中,那必然會占用一定的空間,問題來了,一個變量會占用多少空間呢,或者說應該分出多少內存空間來放置該變量呢?為了規定這個,類型由此誕生了,對于32位編譯器來說,int類型占用4個字節,即32位,long類型占用8字節,即64位。這里簡單說了類型主要是為后面引出指針這個特殊性,在計算機中,將要運行的程序都保存在內存中,所有的程序中的變量其實就是對內存的操作。

#include "stdio.h"

int main(int argc, char **argv)
{
    unsigned int a = 10;
    unsigned int *p = NULL;
    p = &a;
    printf("&a=%d\n",a);
    printf("&a=%d\n",&a);
    *p = 20;
    printf("a=%d\n",a);
    return 0;
}

運行之后,結果如圖:

poYBAGMZ4KaAOMFjAAA2FHvcDxQ921.png

指針也是一個變量,那個指針也應該被存放在內存中,對于32位編譯器來說,其尋址空間為2^32=4GB,為了能夠都操作所有內存(實際上普通用戶不可能操作所有內存),指針變量存放也要用32位數即4個字節。這樣就有指針的地址&p,指針和變量的關系可以用如下圖表示:

poYBAGMZ4OWAKwIyAABuqOukfgk263.png

從上圖可以看到&p是指針的地址,用來存放指針p,而指針p來存放變量a的地址,也就是&a,還有一個*p在C語言中是解引,意思是告訴編譯器取出該地址存放的內容。

poYBAGMZ4QuAIGh2AABHkopwFVU324.png

對于不同類型指針而言,其p+1所指向的地址不同,這個遞增取決于指針類型所占的內存大小,而對于((unsigned int)p)+1,該意思是將地址p所指向的地址的值直接轉換為數字,然后+1,這樣無論p是何種類型的指針,其結果都是指針所指的地址后一個地址。

從上述可以看到,指針的存在使得程序員可以相當輕松的操作內存,這也使得當前有些人認為指針相當危險,這一觀點表現在C#Java語言中,然而實際上用好指針可以極大的提高效率。下面深入一點來通過指針對內存進行操作,現在我們需要對內存6422216中填入一個數據125,我們可以如下操作:

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

    關注

    180

    文章

    7601

    瀏覽量

    136251
  • 指針變量
    +關注

    關注

    0

    文章

    17

    瀏覽量

    7229
收藏 人收藏

    評論

    相關推薦

    C語言中指針變量的使用

      在使用時,一定要注意上面“*“號的用法差異。還需要注意的是,一個指針變量只能指向與其數據類型相同的變量。
    發表于 08-15 15:12 ?2076次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中指針</b><b class='flag-5'>變量</b>的使用

    C語言中指針的定義

    上一節中,我們利用了一個小知識來介紹了一下指針,在上面這個例子中,小明和小麗手中的這個杯子就好比我們C語言中變量,它確實是實實在在存放一些有具體意義的數據。這個杯套就類似于
    發表于 08-15 16:24 ?1804次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中指針</b>的定義

    C語言中指針的定義與使用

    指針也就是內存地址,指針變量是用來存放內存地址的變量,不同類型的指針變量所占用的存儲單元長度是相
    的頭像 發表于 10-13 17:00 ?2245次閱讀

    C語言指針加1引發的思考

    最近有小伙伴對于 C 語言中指針的運算有點疑問:指針變量加 1 之后,到底向后偏移了幾個字節呢?
    的頭像 發表于 01-29 11:31 ?1143次閱讀

    C語言中指針函數和函數指針的概念及應用示例

    C語言中指針函數和函數指針是強大且常用的工具。它們允許我們以更靈活的方式處理函數和數據,進而擴展程序的功能。
    發表于 08-16 16:14 ?745次閱讀

    C語言中指針的基本概念和用法

    C語言中,指針是一項重要的概念,它允許我們直接訪問和操作內存地址。
    發表于 08-17 15:30 ?720次閱讀

    談談C語言中指針有什么好處,請各位高手們談談自己的體會

    談談C語言中指針有什么好處,請各位高手們談談自己的體會...
    發表于 09-01 17:38

    語言中指針的介紹

    的內容。在C語言中, 允許用一個變量來存放指針,這種變量稱為指針變量。因此,一個
    發表于 09-10 14:22

    C語言中指針的介紹非常詳細

    C語言中指針的介紹非常詳細 C語言中指針的介紹非常詳細
    發表于 12-25 10:39 ?57次下載

    基于C語言中指針的基本用法解析

    C語言中其它的知識都學得可以,唯獨指針搞不懂。如果是這樣,我可以很負責的告訴你,對于這門編程語言,你等于是沒學。所以學好指針對于初學者是非
    的頭像 發表于 01-09 15:12 ?4777次閱讀

    C語言中的野指針是怎么來的?

    一、什么是野指針? 指針C語言的靈魂,同時也是很容易讓人犯錯的重難點,用錯了指針將是一個災難。 指針
    的頭像 發表于 06-01 16:43 ?2530次閱讀

    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語言中的一個重要概念,也是C語言的一個重要特色。正確而靈活地運用它,可以使程序簡潔、緊湊、高校。 由于通過地址能找到所需的
    的頭像 發表于 03-10 14:43 ?1007次閱讀

    C語言中什么是指針數組

    C語言中一個數組,若其元素均為指針類型數據,稱為指針數組,也就是說,指針數組中的每一個元素都存放一個地址,相當于一個
    的頭像 發表于 03-10 15:26 ?1678次閱讀

    簡述C語言中指針重點

    C語言中一個函數可以返回一個整型值、字符值、實型值等,也可以返回指針型的數據,即地址,其概念與以前類似,只是返回的值的類型是指針類型。
    的頭像 發表于 03-10 15:28 ?586次閱讀