中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++編程語言中的pointer怎么用

發布時間:2022-02-28 10:08:43 來源:億速云 閱讀:196 作者:iii 欄目:開發技術

這篇文章主要介紹“C/C++編程語言中的pointer怎么用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C/C++編程語言中的pointer怎么用”文章能幫助大家解決問題。

    1 What

    指針,是 C/C++ 編程語言中的一個重要概念。指針通常可以理解為內存地址,而指針變量就是用來存放內存地址的變量。在同一 CPU 架構下,不同類型的指針變量所占用的存儲單元的長度是相同的(而存放數據的變量因數據類型的不同,所占用的存儲空間長度也不同)。例如,在 64 位操作系統(安裝在 X64 CPU 架構之上)中,指針變量占用 8 字節。通過使用指針,不僅可以對數據本身進行操作,也可以對存儲該數據的變量地址進行操作。

    在 C/C++ 編程語言中,指針變量存儲的是其指向的對象的首地址,指針指向的對象可以是變量(注意,指針變量也是變量)、數組、函數、對象等占據存儲空間的實體。

    下面通過一個簡單的指針及其指向對象的信息關系圖來進一步介紹指針。現假設有一個字符變量“c”,其內容為“A”,又有一個名稱為“pChar”的指針(變量)指向該字符變量,因此字符變量“c”與指向其的指針“pChar”關系如下圖所示:

    C/C++編程語言中的pointer怎么用

     通過上圖內容,可知:

    • 字符變量“c”的內存地址為“0x7ffefdc3ae00”;

    • 指針變量“pChar”指向的字符變量“c”對應的內存地址為“0x7ffefdc3ae00”,因此,指針變量的內容即為“0x7ffefdc3ae00”,從這里就可以知道,指針變量與其他變量不同,其存儲的內容是內存地址(而其他變量通常存儲用戶數據);

    • 指針變量也是一種變量,其也是存儲在內存空間中的,在上圖中未將指針變量畫在內存空間中是為了便于觀察指針變量及其指向對象之間的關系。

    2 用法示例

    在本章中,將通過示例代碼來介紹 C/C++ 編程語言中指針的具體用法。

    2.1 示例

    示例1的代碼內容如下:

    #include <iostream>
    using namespace std;
    int main()
    {
        char c = 'A';
        cout << "c is: " << c << endl;
        cout << "address of c is: " << (void*)&c << endl << endl;
        char* pChar1 = &c;
        cout << "*pChar1 is: " << *pChar1 << endl;
        cout << "pChar1 is: " << (void*)pChar1 << endl;
        cout << "address of pChar1 is: " << &pChar1 << endl << endl;
        char* pChar2 = pChar1;
        cout << "*pChar2 is: " << *pChar2 << endl;
        cout << "pChar2 is: " << (void*)pChar2 << endl;
        cout << "address of pChar2 is: " << &pChar2 << endl << endl;
        char** pChar3 = &pChar2;
        cout << "**pChar3 is: " << **pChar3 << endl;
        cout << "*pChar3 is: " << (void*)(*pChar3) << endl;
        cout << "pChar3 is: " << (void*)pChar3 << endl;
        cout << "address of pChar3 is: " << &pChar3 << endl << endl;
        return 0;
    }

    編譯并執行上述代碼,(可能的)結果如下:

    C/C++編程語言中的pointer怎么用

    通過上述代碼及其執行結果,可知:

    • 在 C/C++ 編程語言中,通過取地址運算符“&”可以獲取到變量的內存地址;

    • 指向一般變量(如本例中的字符變量 c)的指針變量(如本例中的 pChar1 和 pChar2),為一級指針,而指向一級指針的指針變量(如本例中的指針變量 pChar3),為二級指針,依此類推;

    • 對指針變量進行賦值操作,需要滿足指針級別的對應關系,如一級指針賦值給一級指針、二級指針賦值給二級指針,否則編譯器會報錯;

    • 通過指針操作符“*”可以獲取指針變量指向的對象的內容,如本例中通過“*pChar1”可獲取指針變量 pChar1 指向的字符變量 c 的內容;

    • 對于二級指針,使用一個指針操作符“*”獲取到的是該指針指向的指針變量的內容,使用兩個指針操作符“*”才能獲取到該指針變量指向的指針變量指向的對象的內容&mdash;&mdash;有點繞,具體看代碼及運行結果:)

    • 在 C++ 編程語言中,可通過將內存地址強轉為 void* 類型的方式,來打印其內容;

    本例的指針及其指向的對象的相關信息,如下圖所示:

    C/C++編程語言中的pointer怎么用

    關于“C/C++編程語言中的pointer怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    理塘县| 江永县| 安西县| 新平| 鲜城| 临城县| 香河县| 泸西县| 贵州省| 浦城县| 喀喇| 通许县| 和平区| 织金县| 鲁山县| 江口县| 河间市| 潍坊市| 临湘市| 金沙县| 三原县| 琼中| 涿州市| 辽阳市| 勃利县| 黄龙县| 凭祥市| 宜昌市| 南阳市| 缙云县| 平乡县| 韩城市| 扶绥县| 漳浦县| 衢州市| 马公市| 得荣县| 伊川县| 清原| 崇仁县| 天柱县|