當前位置:首頁 » 編程語言 » c語言二維數組函數參數

c語言二維數組函數參數

發布時間: 2023-02-05 16:29:02

c語言中的結構體二維數組做參數問題

1、如果在函數外定義的結構數組,又要在一個函數中進行輸入、輸出,通常情況下,其參數傳遞類型需要傳址,即
void shuchu(struct std **cansu);
void shuchu(struct std *cansu[]);

這樣調用改為 shuchu(&aa);

對函數內的相應操作改為指針操作即可。

2、通常情況下,對於一個系統設計而言,其輸入輸出是分開的,也即在2個函數中,從系統分析而言,建議分開。當然,就測試而言,是可以的。

3、如果一定要採用2維數組做參數,按照對於多維數組做參數的要求,前幾維一定要給出確切的數值

如2維: void shuchu(struct std cansu[5][]) 就可以了。

㈡ C語言中如何將二維數組作為函數的參數傳遞

在C語言中可以用二維數組作為實參或者形參。


1、函數中用二維數組作為形參,函數聲明中可以指定所有維數的大小,也可以省略第1維的維數如:

voidf(intarray[3][10]);//正確
voidf(intarray[][10]);//正確

上面的兩種二維數組形參表示都是正確的。


2、函數中用二維數組作為形參,不能把第2維或者更高維的大小省略,如下面的定義是不合法的:

voidf(intarray[][]);//錯誤

因為從實參傳遞來的是數組的起始地址,在內存中按數組排列規則存放(按行存放),而並不區分行和列,如果在形參中不說明列數,則系統無法決定應為多少行多少列,不能只指定一維而不指定第二維,下面寫法是錯誤的:

voidf(intarray[3][]);//錯誤

3、二維數組作為實參傳遞時,必須保證實參第2維的維數與形參第2維的維數相同,因為必須要保證形參和實參的數據類型一致。比如定義如下函數:

voidf(intarray[][10]);

可以將如下數組傳遞給函數f。

inta[2][10]={1,2,3,4};
intb[4][10]={1};

㈢ C語言中如何將二維字元數組作為函數參數引用傳遞

不可能達到目的。因為C語言中沒有引用這類型,C++才有。另,C/C++都不支持傳遞數組,只能傳遞數組的首元素或行指針,所以即使是C++,也只能傳遞數組指針的引用,而不可能傳遞數組的引用,因為數組沒有引用。

㈣ c語言中怎麼用二維數組作為函數參數

二維數組作為函數參數,實參可以直接使用二維數組名,在被調用函數中對形參數組定義可以指定所有維數的大小,也可以省略第一維的大小說明,如:

因為從實參傳遞來的是數組的起始地址,如果在形參中不說明列數,編譯器將無法定位元素的的位置。

㈤ c語言c++語言如何用二維數組做形參

C/C++中,二維數組的第一維的每一個元素都是一維數組。所以,用指向一維數組的指針或用第一維維數空缺的二維數組作為函數的形式參數都能達到目的。設處理數組為int型,舉例代碼如下:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
voidmyprint(int(*p)[5]){//p是指向有5個int型元素的一維數組的指針
//voidmyprint(intp[][5]){//這樣寫效果是一樣的
inti,j;
for(i=0;i<3;i++){
for(j=0;j<5;printf("%3d",p[i][j++]));
printf(" ");
}
}
intmain(void){
inta[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};
myprint(a);
return0;
}

㈥ C語言 二維數組做函數參數

#include
<stdio.h>
int
main()
{
void
average(float
*p,float
*p1,int
n);
float
score[3][4]={{65,67,70,80},{80,87,90,81},{90,99,100,98}};
average(score[0],&score[2][3],12);
return
0;
}
void
average(float
*p,float
*p1,int
n)
{
float
sum=0;
for(;p<=p1;p++)
{
sum+=(*p);
}
printf("\t%5.2f",(sum/n));
}
在你給出的程序有兩處錯誤
1,average(*score,12);
這句中你的本意是傳輸score【0】【0】的地址
但是*score是不行得
2,for(;p<=(p+n-1);p++)這句中
p是指向score【】【】的指針
p++是p向後移時候
(p+n-1)已不再指向score【2】【3】這個數組的末位置

熱點內容
大學php開發培訓 發布:2024-04-20 08:04:35 瀏覽:987
小米2s存儲設置 發布:2024-04-20 07:58:38 瀏覽:900
株洲移動網路伺服器地址 發布:2024-04-20 07:45:48 瀏覽:689
119濃度的鹽酸怎麼配置 發布:2024-04-20 06:23:38 瀏覽:119
資料庫pf 發布:2024-04-20 05:57:36 瀏覽:393
c語言編譯出現連接錯誤 發布:2024-04-20 05:42:18 瀏覽:198
湖北戴爾伺服器維修系統雲主機 發布:2024-04-20 05:36:47 瀏覽:62
android上傳數據 發布:2024-04-20 05:36:43 瀏覽:143
python替換文本內容 發布:2024-04-20 05:21:22 瀏覽:899
urllib3源碼 發布:2024-04-20 05:11:23 瀏覽:35