應該是你的變量定義有問題。
創新互聯公司專業為企業提供興和網站建設、興和做網站、興和網站設計、興和網站制作等企業網站建設、網頁設計與制作、興和企業網站模板建站服務,10年興和做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
例如程序:
#include?stdio.h
#include?string.h
char?a[5]={'a','b','c','d','e'};
void?fun(char?a[])
{gets(a);}
int??main(){
gets(a);fun(a);puts(a);
return?0;
}
//運行示例:
初始定義為abcde,主函數輸入fghij,函數再次輸入klmno,輸出結果為klmno
用指針就可以了,如
定義有int a[5];
則這樣定義函數:
int fun(int *p, int size)
{
//p為數組的首地址
//size為數組的大小
//傳遞進去后可以像操作a一樣用下標操作p
//如p[0], p[4]...
}
傳遞參數給函數可以這樣寫:
fun(a, 5);
若是多維數組,則第一維大小不給出,只指定后面的維數大小,如:
定義有int a[5][2];
則這樣定義函數:
int fun(int p[][2], int size)
{
//p為數組的首地址
//size為第一維的大小
//傳遞進去后可以像操作a一樣用下標操作p
//如p[0][1], p[4][1]...
}
傳遞參數給函數可以這樣寫:
fun(a, 5);
你的代碼不全,我只能給你分析一下這種情況常見的錯誤了。
1、要返回數組定義在子函數中。在函數體內部定義的數據變量,如果未加修飾符(static和extern),那么她是局部的,函數執行完畢之后內存釋放,造成你訪問錯誤。你下邊的那個例子定義的數組是全局變量,先不說了下班了晚上補充
int?data[8]?=?{0,?0,?0,?0,?0,?0,?0,?0};
void?dealdata(int*?data,?int?length){
for?(int?i?=?0;?i??length;?i++)?{
printf("%d\n",?data[i]);
}
}
dealdata(data,?8);
1、輸入數組需要使用指針獲取地址后,就能對得到的數組就行操作了。首先打開DEV C++軟件,新建一個空白的C語言文件:
2、輸入程序的源碼,先定義一個整型數組“a[5]”,采用scanf語句輸入數組中的每個元素,這里使用指針來對輸入的數字進行訪問,要先給輸入的每一個數字給予它的地址,便于訪問,最后拿得到的數計算出平均值輸出,程序就編寫完成了:
3、代碼全部編寫成功之后編譯運行,在彈出的輸入面板中輸入任意5個整數,按回車鍵,即可得出平均值,以上就是用C語言輸入一個數組,關鍵點是數組的獲取要用指針:
可以直接傳入數組名
main(){
int?a[5]?=?.....;
func1(a);
func2(a);
}
void?func1(int?a[5]){
}
void?func2(int?*a){
}
本文題目:c語言往子函數輸入數組,c語言怎么往函數放入數組
URL地址:http://vcdvsql.cn/article10/hecsdo.html
成都網站建設公司_創新互聯,為您提供網站營銷、云服務器、做網站、響應式網站、企業網站制作、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯