C++ 二位數組做參數傳遞


指針的強大功能,,,,簡直牛逼!!!

#include<iostream>
#include<cstdio>
#include<map>
using namespace std;

void func1(int arr[][5])//傳遞數組,需生命數組第二維的大小
{
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++)cout<<arr[i][j]<<" ";
        cout<<endl;
    }
}
void func2(int (*arr)[5])//傳遞數組指針,仍需生命第二維的大小
{
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++)cout<<arr[i][j]<<" ";
        cout<<endl;
    }
}
void func3(int *arr)//傳遞指針,指針指向首元素即可,但維數組的形狀需用其他參數來證明
                    //傳參時需要強制轉換類型
{
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++)cout<<*(arr+i*5+j)<<" ";
        cout<<endl;
    }
}
int main()
{
    int arr[5][5];
    int ins=0;
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            arr[i][j]=++ins;
        }
    }
    func1(arr);
    func2(arr);
    func3((int *)arr);
    return 0;
}

 


免責聲明!

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



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