一般是需要主函數提供保存數據的數組,在參數中給出數組起始地址,然后子函數在其中填充,比如要準會的整數是56
我們提供的服務有:成都網站設計、網站建設、外貿網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、東臺ssl等。為數千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的東臺網站制作公司
void fun(int *a,int b) { ... }
void main() { int a[20];
fun(a,56);
}
一維數組的元素作為函數實參,與同類型的簡單變量作為實參一樣,是單向的值傳遞,即數組元素的值傳給形參,從而形參是改變不影響實參
數組名代表著整個數組的地址,如果一維數組的名字作為函數實參,傳遞的是整個數組,即形參數組和實參數組完全相同,是存放在同一存儲空間的同一個數組。這樣形參數組
修改時,實參數組也同時被修改了。形參數組的元素個數可以省略。
#includestdio.h
//數組作為函數參數,可以省略元素個數
//數組作為函數參數,傳遞是整個數組的地址,修改了函數形參數組元素的值,會影響到外面的實參數組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
接受數組的方法很多1維數組a[]你可以
func(int *a);
func(int a[]);
func(int a[10]);
這3中方法的是沒區(qū)別的,
但是要在函數中獲取一位數組的長度是不可能的,這是C/C++的一個無法解決的問題。你可以再定義一個形參限定一下對數組操作的大小,
比如func(int *a,int N);
這樣的前提是你要知道你所操作數組必須長度小于N
gets從標準輸入設備讀字符串函數。可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執(zhí)行讀操作時不發(fā)生溢出。從stdin流中讀取字符串,直至接受到換行符或EOF時停止,并將讀取的結果存放在buffer指針所指向的字符數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為‘\0’空字符,并由此來結束字符串。
因為gets函數是以換行符為分隔,所以用一層循環(huán)即可讀取一個二維數組。對于每行字符串,使用sscanf讀取每個數。
例如:
char?s[100];
int?a[3][3],i;for(i=0;i3;i++){
gets(s);
sscanf(s,"%d%d%d",s[i],s[i]+1,s[i]+2);
}
分享標題:C語言中函數如何接收數組 c語言函數如何調用數組
鏈接URL:http://muchs.cn/article24/hhecje.html
成都網站建設公司_創(chuàng)新互聯,為您提供App設計、網站內鏈、網站營銷、網站策劃、全網營銷推廣、手機網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯