C++/C中一級指針和二級指針的定義和使用


一級指針:

  • 定義                                                                   int *p;       // 定義一個int型的指針變量('*'的此時不是解引用運算符的作用,而是表示聲明一個指針變量)
  • *取址運算符'&'                       &p;     //訪問指針變量p在內存中的地址
  • *解引用運算符'*':                                              *p;      //訪問指針變量p所指向地址的內存的數據
  • *直接使用                                       p ;    //訪問指針變量p所指向的地址
  • 賦值:                            int n=1;p=&n;    //將int型在內存中的地址賦給指針變量p
  • 輸出:                    cout<<*p<<&p<<p;   //輸出指針變量p所指向對應地址內存的數據,p在內存的地址,p指向的地址

二級指針:

  • 定義:                                             int **p2;        //定義一個int*型二級指針變量  *注意:二級指針只能指向一級指針的地址
  • 賦值:                             int *p,n=1;p2=&p;         //確定二級指針p2指向哪個一級指針
  • 輸出:        cout<<**p2<<*p2<<&p2<<p2;       //分別輸出p2跳越2次地址后最終的數據,p所指向的地址,p2在內存的地址以及p在內存的地址

代碼實例:

#include<iostream>
using namespace std;
int main()
{
        //利用一級指針輸出int型的數據和地址:
        int n1 = 1, * p;
        p = &n1;
        cout << p << " " << *p << " " << &p << endl;
        //利用二級指針輸出int型的數據和地址:
        int** p2;
        p2 = &p;
        cout << p2 << " " << *p2 << " " << **p2 << endl;
        return 0;
}

注意attention:

  • 二級指針只能被一級指針變量賦值,當被其他類型賦值時會出現報錯

 

 

        • 圖示:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM