二維指針數組、數組指針的用法


1.廢話不多說,先上代碼:

#include <iostream>
using namespace std;

int main(void)
{    
    int v[2][5] = {{1,2,3,4,5},{6,7,8,9,10}};
    int (*a)[5] = v;        //指針數組,指針指向數組 a[5],a[5]里面是int數值 該指針等於v的地址 
    
    cout<<(*a+1)<<endl;        //*a是v[0][0]的地址。  0x22fe04
    cout<<(*a+2)<<endl;        //輸出0x22fe08
    cout<<*(*a+2)<<endl;    //a[0][1]的值 3 
    cout<<*(a+1)<<endl;        //輸出 v[1][0]的地址。 0x22fe14
    cout<<**(a+1)<<endl;    //a[1][1] = 6 
    
    int b[3]={11,12,13};
    cout<<"一維數組:"<<endl;
    cout<<b<<endl;            //b[0]的地址0x22fe30
    cout<<(b+1)<<endl;        //b[1]的地址 0x22fe34
    cout<<(&b+1)<<endl;        //輸出指向b的指針的地址+sizeof(b[3])的地址:0x22fe3c
    cout<<*(b+1)<<endl;        // 12
    cout<<*(&b+1)<<endl;    //輸出的是0x22fe3c ,輸出的是他的地址值   (只能記住先!!)


    cin.get();
    return 0;
}

2.指針數組和數組指針的區別:

指針數組 : int (*p)[3];  //指針指向數組,p是一個指向數組p[3]的指針。

數組指針:  int p[3];    //數組內存到數據是指針

----------跟 指針常量  常量在指針有點類似,誰先執行誰先讀,然后根據讀的方向判斷具體意思。


免責聲明!

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



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