一維數(shù)組的元素作為函數(shù)實參,與同類型的簡單變量作為實參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實參
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站十載經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文平臺,廣告投放平臺等。十載來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:028-86922220,我們期待您的來電!
數(shù)組名代表著整個數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實參,傳遞的是整個數(shù)組,即形參數(shù)組和實參數(shù)組完全相同,是存放在同一存儲空間的同一個數(shù)組。這樣形參數(shù)組
修改時,實參數(shù)組也同時被修改了。形參數(shù)組的元素個數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個數(shù)組的地址,修改了函數(shù)形參數(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
1.函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。
例如:
double add(double a,double b){};
double sub(double a,double b){};
double mul(double a,double b){};
double div1(double a,double b){};
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數(shù)指針的數(shù)組定義
2.函數(shù)指針是指向函數(shù)的指針變量。函數(shù)指針有兩個用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)。
函數(shù)指針的聲明方法為:
返回值類型( * 指針變量名) (形參列表);
“返回值類型”說明函數(shù)的返回類型,“( * 指針變量名)”中的括號不能省,括號改變了運算符的優(yōu)先級。若省略整體則成為一個函數(shù)說明,說明了一個返回的數(shù)據(jù)類型是指針的函數(shù),后面的“形參列表”表示指針變量指向的函數(shù)所帶的參數(shù)列表。
例子:
#includestdio.h
int?max(int?x,int?y){return?(xy??x:y);}
int?main(){
int?(*ptr)(int,?int);
int?a,?b,?c;
ptr?=?max;
scanf("%d%d",?a,?b);
c?=?(*ptr)(a,b);
printf("a=%d,?b=%d,?max=%d",?a,?b,?c);
return?0;
}
給你看一下我的代碼
#includestdio.h
void main(){
int a[10],b[10],i,j,temp;
for(i=0;i10;i++){
printf("請輸入第%d個數(shù):",(i+1));
scanf("%d",a[i]);
//保存數(shù)組,因為輸入完數(shù)組要冒泡排序,排序后的元素順序可能和原數(shù)組不一樣
b[i]=a[i];
}
//冒泡排序,求最大值
for(i=0;i9;i++){
for(j=0;j9-i;j++){
if(a[j]a[j+1]){ //這里控制的升序還是降序,我這是降序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//查找最大值在原數(shù)組的位置
for(i=0;i10;i++){
if(b[i]==a[0]){ //降序的話最大值是a[0],升序的話最大值是a[9]
break; //一旦找到最大值,馬上跳出循環(huán)
}
}
printf("最大值是%d,它在原數(shù)組中是第%d個元素!\n",a[0],(i+1));
}
在c語言中數(shù)組在函數(shù)中傳遞是通過指針來進行的。比如
void print_str(const char *str)
{
printf("%s", str);
}
int main()
{
print_str("hello world\n");
return 0;
}
網(wǎng)頁名稱:c語言數(shù)組存函數(shù) c語言存字符串數(shù)組
分享URL:http://aaarwkj.com/article2/docpcoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站內(nèi)鏈、移動網(wǎng)站建設(shè)、虛擬主機、云服務(wù)器、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)