• <menu id="imuyi"><tt id="imuyi"></tt></menu>
  • 專注Java教育13年 全國咨詢/投訴熱線:400-8080-105
    動力節點LOGO圖
    始于2009,一家只教授Java的培訓機構
    首頁 hot資訊 二維數組指針的使用

    二維數組指針的使用

    更新時間:2022-10-27 08:58:53 來源:動力節點 瀏覽44次

    二維數組指針怎么使用?動力節點小編來告訴大家。

     int a[5]={1,2,3,4,5}; 
        int *p=(int *)(&a+1); 
        int *q=(int *)&a;
        printf("%p,%p,%p",a,p,q+1);

    本身a作為一個地址,p作為指向a的地址,相當于一個二維指針, 一個二維指針加一相當于移動了一行,所以這里是移動了5*4個字節,而對于q+1的情況,說明移動了4個字節。

    數組二維數組的指針變量

    注意:行指針和列指針的定義方式就不一樣

    對于指向二維數組的指針變量p,可以有兩種:

    一種是指向數組元素的列指針

    一種是指向行的行指針,這時,p不是指向一個具體的數組元素,而是指向一個包含m個元素的一維數組。這里對行指針特殊說明一下;

    行指針的定義形式為:類型標識符 (*指針變量名)[長度];

    例如: int a[3][4],(*p)[4]=a; //這里也可以寫為int a[3][4],(*p)[4]=&a[0];

    其中p,p+1,p+2和a,a+1,a+2都是第i行的首地址。

    使用指針變量訪問二維數組的任意一個元素的方法

    (1)使用列指針:定義一個列指針p,讓它指向二維數組的第0個元素

    int a[3][4];
    int *p

    p=&a[0][0]; //因為a[0]是第0行的數組名,所以p=&a[0][0]相當于p=a[0],因為a[i][j]前面共有i*4+j個元素,該二維數組的任意i行j列元素可表示為*(p+i*4+j)(使用列指針表示每個元素的方式)

    (2)使用行指針:定義一個行指針p,讓它指向二維數組的第0行

    int a[3][4];
    int (*p)[4];
    p=a;   //也可以為p=&a[0]; 

    其中* ( *(p+i)+j)表示任意一個i行j列的元素。

    根據行指針和列指針都可以找到數組中的每一個元素,但是方式不一樣。

    提交申請后,顧問老師會電話與您溝通安排學習

    免費課程推薦 >>
    技術文檔推薦 >>
    返回頂部
    小敏爽?好舒服?快?好大
  • <menu id="imuyi"><tt id="imuyi"></tt></menu>