C語言中二維數(shù)組作為函數(shù)參數(shù)來傳遞的三種方法
c語言中經(jīng)常需要通過函數(shù)傳遞二維數(shù)組,有三種方法可以實現(xiàn),如下:
方法一, 形參給出第二維的長度。
例如:
#include <stdio.h>
void func(int n, char str[ ][5] )
{
int i;
for(i = 0; i < n; i++)
printf("/nstr[%d] = %s/n", i, str[i]);
}
void main()
{
char* p[3];
char str[][5] = {"abc","def","ghi"};
func(3, str);
}
方法二,形參聲明為指向數(shù)組的指針。
例如:
#include <stdio.h>
void func(int n, char (*str)[5] )
{
int i;
for(i = 0; i < n; i++)
printf("/nstr[%d] = %s/n", i, str[i]);
}
void main()
{
char* p[3];
char str[][5] = {"abc","def","ghi"};
func(3, str);
}
方法三,形參聲明為指針的指針。
例如:
#include <stdio.h>
void func(int n, char **str)
{
int i;
for(i = 0; i < n; i++)
printf("/nstr[%d] = %s/n", i, str[i]);
}
void main()
{
char* p[3];
char str[][5] = {"abc","def","ghi"};
p[0] = &str[0][0];
p[1] = str[1];
p[2] = str[2];
func(3, p);
}
附加,第三種傳參方式說明:在函數(shù)中使用傳參過來的二維數(shù)組(指針)進(jìn)行數(shù)組取值的時候不能使用(array[i][j] )這種形式來取值。應(yīng)該將二維數(shù)組看成一個一維數(shù)組,使用array[i * j + j]這種形式來進(jìn)行取值。
個人理解:這是因為在傳參的時候,我們將array[][]數(shù)組當(dāng)成二級指針來進(jìn)行傳遞,所以我認(rèn)為他是將數(shù)組的屬性退化成了二級指針的屬性,因此這里并不能使用array[i][j]這種方式來進(jìn)行數(shù)組取值。輸出格式如下
int tag = 0;//tag標(biāo)記,在方法中輸出二維數(shù)組時所需要的標(biāo)記
printf("使用傳遞過來的二維數(shù)組參數(shù)輸出二維數(shù)組\n");
for(i = 0; i < rows*columns; i++) {
printf("%d,", array[i]);
if(tag == columns-1) {
tag = 0;
printf("\n");
} else {
tag++;
}
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對我們的支持。
上一篇:一文讓你不再害怕指針之C指針詳解(經(jīng)典,非常詳細(xì))
欄 目:C語言
下一篇:OpenCV實現(xiàn)簡單攝像頭視頻監(jiān)控程序
本文標(biāo)題:C語言中二維數(shù)組作為函數(shù)參數(shù)來傳遞的三種方法
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/214.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10C#中split用法實例總結(jié)
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置


