91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ 二維數組參數傳遞的實現方法

發布時間:2020-09-22 09:41:56 來源:腳本之家 閱讀:146 作者:liuzhanchen1987 欄目:編程語言

C++ 二維數組參數傳遞的實現方法

int a[2][2]={ {4, 6}, {9, 11} };

我定義了這樣一個數組,我想把這個數組作為參數,傳遞到一個函數中,并要在函數中能引用該二維數組的元素,我該怎么做? 

第一種方式是直接傳遞二維數組,但是必須標明第二維的值,因為如果只是傳遞a[][],編譯器無法分配這樣的數組,所以要這樣傳int a[][3]

第二種方法是傳遞指針數組方式,即int (*a)[3]

第三種是傳遞指針方法。

具體實施見代碼:

方法1:傳遞數組,注意第二維必須標明

//二維數組傳參問題示例
#include<iostream>
using namespace std;
//方法1:傳遞數組,注意第二維必須標明
void fun1(int arr[][3],int iRows)
{
 for(int i=0;i<iRows;i++)
 {
 for(int j=0;j<3;j++)
 {
  cout<<arr[i][j]<<" ";
 }
 cout<<endl;
 }
 cout<<endl;
}

方法二:一重指針

void fun2(int (*arr)[3],int iRows)
{
 
 for(int i=0;i<iRows;i++)
 {
 for(int j=0;j<3;j++)
 {
  cout<<arr[i][j]<<" ";
 }
 cout<<endl;
 }
 cout<<endl;
}

方法三:指針傳遞,不管是幾維數組都把他看成是指針,

void fun3(int*arr,int iRows,int iCols)
{
 for(int i=0;i<iRows;i++)
 {
 for(int j=0;j<3;j++)
 {
  cout<<*(arr+i*iRows+j)<<" ";
 }
 cout<<endl;
 }
 cout<<endl;
}
int main()
{
 int a[2][3]={{1,2,3},{4,5,6}};
 fun1(a,2);
 cout<<endl;
 fun2(a,2);
 cout<<endl;
 //此處必須進行強制類型轉換,因為a是二維數組,而需要傳入的是指針
 //所以必須強制轉換成指針,如果a是一維數組則不必進行強制類型轉換
 //為什么一維數組不用強制轉換而二維數組必須轉換,此問題還沒解決,期待大牛!
 fun3((int*)a,2,3);
 cout<<endl;
}

/*
#include<iostream>
using namespace std;
void fun(int *a,int length)
{
 int i;
 for(i=0;i<length;i++)
 {
 cout<<a[i]<<" ";
 }
 cout<<endl;
}
int main()
{
 int a[4]={1,2,3,4};
 fun(a,4);
 cout<<endl;
 return 0;
}
*/

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持,大家共同進步!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黔南| 乐至县| 斗六市| 兰州市| 嘉黎县| 曲沃县| 陆良县| 察隅县| 林芝县| 隆回县| 山丹县| 百色市| 涪陵区| 九寨沟县| 萨迦县| 盈江县| 申扎县| 武陟县| 通山县| 三门县| 娱乐| 柘荣县| 额敏县| 宿松县| 铜陵市| 巧家县| 新昌县| 行唐县| 嵊泗县| 永安市| 昭苏县| 凤凰县| 崇明县| 克什克腾旗| 黄山市| 平顶山市| 三亚市| 平谷区| 通化市| 阜城县| 青河县|