數組做爲函數參數

數組能夠做爲函數的參數使用,進行數據傳送。數組做爲函數參數有兩種形式。數組

(1)把元素做爲實參使用。函數

(2)把數組名做爲函數的形參和實參使用。spa

一、數組元素做爲函數實參code

數組元素就是下標變量,它與普通變量並沒有區別。所以它做爲函數實參使用與普通變量是徹底相同的,在發生函數調用時,把做爲實參的數組元素的值傳遞給形參,實現單向的值傳遞。blog

例:判別一個整數數組a[10]={1,2,3,4,-1,-2,-3,-4,2,3}中個元素的值,若大於0,則輸出該值,若小於等於0,則輸出0。內存

#include <stdafx.h> #include<stdio.h>

void test(int v); void main() { int a[10]={1,2,3,4,-1,-2,-3,-4,2,3}; int i; for(i=0;i<=10;i++) { test(a[i]); } printf("\n"); } void test(int v) { if(v>0) { printf("%d\n",v); } else { printf("0\n"); } }

二、數組名做爲函數參數io

注:(1)與數組元素做爲函數參數不一樣的是,用數組名做爲函數參數時,要求形參與相對應的實參都必須是類型相同的數組,不然會發生錯誤。編譯

(2)用數組名做爲函數參數時,並非進行值的傳遞,即不是把實參數組的每個元素的值都賦與形參數組的各個元素。由於實際上形參數組並不存在,編譯系統並不爲形參數組分配內存。class

數據的傳遞:數組名就是數組的首地址。所以在數組名做爲函數參數時所進行的傳遞只是地址的傳遞,也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址以後,也等於有了實際的數組,即實參與形參有一段共用的內存空間。test

例:

#include <stdafx.h> #include<stdio.h>

void test (int b[10]); void main() { int a[10]={2,4,6,8,10,12,14,16,18,20}; test(a); putchar('\n'); } void test (int b[10]) { int i=0; for(;i<10;i++) { printf("%6d",b[i]); } }

例:有一個一維數組score,內放10個學生成績,求平均成績。(寫一個average函數獲取平均成績)。

#include <stdafx.h> #include<stdio.h>

double average(double array[10]);/*函數聲明*/
void main() { double score[10]={82,100,55,80,64,78,26,65,36,85},result; result=average(score); printf("%lf\n",result); } double average(double array[10]) { int i; double f=0; for(i=0;i<=9;i++) { f+=array[i]; } f /= 10; return (f); }
相關文章
相關標籤/搜索