程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 二維數組名作為實參或者形參,二維數組作為

二維數組名作為實參或者形參,二維數組作為

編輯:關於C語言

二維數組名作為實參或者形參,二維數組作為



 
    1.方式1.void fun(int a[4][6]); //二維數據作為函數參數時,要明確指明二維數組的列數.
 
        void fun(int a[][6])    //二維數組行數可以省略
 
        另外,不能用非常量定義二維數組作為其下標.
 
    */

void fun1(int a[][3],int n){//數組的行數
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d  ",a[i][j]);
        }
    }
}


    /*
 
 
 
     方式2.void fun(int (*pArray)[6]) 應用一維指針組作為參數
     
   
     */

void fun2(int (*arr)[3],int n){
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d  ",arr[i][j]);
        }
    }
}



    /*
     
     
     方式3.void fun(int (&arr)[10][10])  應用二維數組引用作為參數,在此必須指明二個維數
     
     方式4.void fun(int (*arr)[10][10]) 應用二維指針數組作為參數,在此必須指明二個維數
     
     注:以上四種方法通用,但是數組傳遞時,僅傳值,對傳入參數不做改變
     
     
     
     方式5. void fun(int** arr, int m, int n) 應用二重指針作為形參,傳入的實參也必須是二重指針,巧妙地利用new分配內存空間,可以用非常量定義
     
     arr[i][j]獲取值是不對的,因為編譯器不能正確的為它尋址,所以我們需要模仿編譯器的行為把arr[i][j]這樣的式子
     
     手工轉變為 *((int*)arr + n*i + j);
     
     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved