新聞中心
C語(yǔ)言調(diào)用帶數(shù)組的函數(shù)為什么要這么寫?
首先int max(int a[])這個(gè)函數(shù)參數(shù)的意思是接受一個(gè)數(shù)組的首地址,也就是說調(diào)用的時(shí)候必須是地址,也可以說是指針;
成都創(chuàng)新互聯(lián)專注于芷江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供芷江營(yíng)銷型網(wǎng)站建設(shè),芷江網(wǎng)站制作、芷江網(wǎng)頁(yè)設(shè)計(jì)、芷江網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造芷江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供芷江網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
如果調(diào)用寫成max(a[10]),這里面a[10]為第十一個(gè)元素的值當(dāng)然不行了,除非你就是把地址放在里面了,強(qiáng)制有的編譯器應(yīng)該可以通過但是會(huì)有警告。
其實(shí)理解了的話max(a)和max(a[0])都是可以的,都表示把數(shù)組a的首地址傳過去。
可以多去了解一下指針,多上機(jī)操作,多練練就會(huì)理解的越深。
c語(yǔ)言中數(shù)組名作為函數(shù)參數(shù)
要將數(shù)組長(zhǎng)度作為一個(gè)參數(shù)傳給average函數(shù),不能在average函數(shù)內(nèi)部通過int arrLen = sizeof(a) / 4;來計(jì)算數(shù)組長(zhǎng)度。因?yàn)閒loat average(float a[10])就相當(dāng)于float average(float *a) ,所以sizeof(a)恒等于4,sizeof(a) / 4恒等于1。
應(yīng)該這樣:
float average(float a[10],int arrLen) {
float sumSco = 0;
for (int i = 0; i arrLen; i++)
{
sumSco += a[i];
}
return sumSco / arrLen;
}
關(guān)于c語(yǔ)言中數(shù)組作為函數(shù)參數(shù)的函數(shù)之間調(diào)用問題
1、新建一個(gè)數(shù)組作為參數(shù)項(xiàng)目,如圖所示:
2、添加一個(gè)array.c文件,如圖所示:
3、包含stdio.h和stdlib.h頭文件,如圖所示:
4、輸入main函數(shù)主體及返回值,如圖所示:
5、定義一個(gè)數(shù)組arr,如圖所示:
6、定義一個(gè)function函數(shù),如圖所示:
7、將數(shù)組作為參數(shù)傳遞給function函數(shù),如圖所示:
8、運(yùn)行程序,輸出結(jié)果,如圖所示:
c語(yǔ)言 函數(shù)調(diào)用(形參為數(shù)組名的情況)
#include stdio.h
void sort(int a[20])
{ int i,j,k,t;
for(i=0;i19;i++)
{ k=i;
for(j=i+1;j20;j++)
if(a[k]a[j]) k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
void main()
{ int a[20]={2,5,7,8,4,10,48,96,65,74,35,84,15,38,52,56,60,20,17,80};
sort(a);
}
沒問題
我調(diào)試過了
記得給我加分
在c語(yǔ)言中怎么將數(shù)組直接作為函數(shù)的參數(shù) 比如 int f(int a[10]) 在調(diào)用函數(shù)時(shí)會(huì)顯示
要把數(shù)組作為函數(shù)的參數(shù),在函數(shù)定義的時(shí)候,就要在參數(shù)列表設(shè)置指針,因?yàn)閿?shù)組名就是數(shù)組的頭指針,在調(diào)用時(shí)直接把數(shù)組名作為函數(shù)的參數(shù)就好了
比如
int fun(int *a)
{
//...
}
int main()
{
int a[10];
int result=fun(a);
return 0;
}
這樣就好了
通常為了在函數(shù)中確保訪問數(shù)組不越界,在參數(shù)列表還要假如數(shù)組的長(zhǎng)度,方便函數(shù)訪問數(shù)組
如下:
int fun(int *a,int length)
{
int i,sum=0;
for(i=0;ilength;i++)
{
//...對(duì)數(shù)組的每個(gè)元素進(jìn)行訪問
sum+=a[i];//把全部元素加起來
}
return sum;
}
int main()
{
int i,a[10];
for(i=0;i10;i++)
scanf("%d",a[i]);
int result=fun(a,10);
printf("總和為:%d\n",result);
return 0;
}
c語(yǔ)言怎么將數(shù)組作為函數(shù)參數(shù)傳入?
一維數(shù)組的元素作為函數(shù)實(shí)參,與同類型的簡(jiǎn)單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組
修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。形參數(shù)組的元素個(gè)數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個(gè)數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個(gè)數(shù)組的地址,修改了函數(shù)形參數(shù)組元素的值,會(huì)影響到外面的實(shí)參數(shù)組
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;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
當(dāng)前名稱:c語(yǔ)言函數(shù)調(diào)用參數(shù)為數(shù)組 c語(yǔ)言函數(shù)參數(shù)是數(shù)組
網(wǎng)站URL:http://fisionsoft.com.cn/article/hpegsi.html