1. 程式人生 > >數組作為函數參數

數組作為函數參數

include lse bsp stdio.h 維數 color 不同 等於 普通

數組可以作為函數的參數使用,進行數據傳送。數組作為函數參數有兩種形式。

(1)把元素作為實參使用。

(2)把數組名作為函數的形參和實參使用。

1、數組元素作為函數實參

數組元素就是下標變量,它與普通變量並無區別。因此它作為函數實參使用與普通變量是完全相同的,在發生函數調用時,把作為實參的數組元素的值傳遞給形參,實現單向的值傳遞。

例:判別一個整數數組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"); } }

2、數組名作為函數參數

註:(1)與數組元素作為函數參數不同的是,用數組名作為函數參數時,要求形參與相對應的實參都必須是類型相同的數組,否則會發生錯誤。

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

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

例:

#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);
}

數組作為函數參數