1. 程式人生 > 其它 >有關型如int[][]的二維陣列對應形參書寫的幾種方式,以及使用這個形參的函式該如何查詢某個元素的下標。

有關型如int[][]的二維陣列對應形參書寫的幾種方式,以及使用這個形參的函式該如何查詢某個元素的下標。

技術標籤:c++二維陣列元素下標c++

個人的第一篇部落格。

有關型如int[][]的二維陣列對應形參書寫的幾種方式,以及使用這個形參的函式該如何查詢某個元素的下標。

#include<algorithm>

//查詢二維陣列方式1
int getEle(int** a)//二次指標,接受二維陣列第一行的首地址,使用時相當於把二維陣列按一維陣列讀取。因為二維陣列的元素儲存是連續的。
{
    auto tmp = a+1;
    auto b = std::find((int*)a+3, (int*)a+6, 5);//查詢第二行元素“5”的列下標
    return (int)(b - ((int*)a+3));
}
//查詢二維陣列方式2
int getEle2(int a[][3])//第一維未確定的二維陣列指標
{
    auto b = std::find(std::begin(a[2]),std::end(a[2]),9);//查詢第三行元素“9”的列下標
    return b - a[2];
}
//查詢二維陣列方式3
int getEle3(int (*a)[3])//寬度為3個整型的指標變數
{
    auto b = std::find(std::begin(a[2]), std::end(a[2]), 9);//查詢第三行元素“9”的列下標
    return b - a[2];
}

int main()
{
    //以下面的二維陣列為例
    int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
    int b1 = getEle((int**)a);//使用方法1
    int b2 = getEle2(a);//使用方法2
    int b3 = getEle3(a);//使用方法3
    return 0;
}

本文雖對形參舉例,但這三種形參的書寫方式也可以用作對二維陣列的型別轉化。