函數與數組~基礎知識

不帶下標的數組名代表一批變量,它存放的是數組的首地址(數組首元素的地址)。


直接用參數名做參數時,傳送的時地址值,地址傳遞後實參數組、形參數組地址相同,共享相同的內存單元,可以說就是同一個數組,只是生存期和作用域不同而已。


c編譯系統對形參數組的大小不作檢查,形參數組在後跟一括號即可,其大小由相應的實參數組決定。


注意:

       形參數組並不會重新申請分配空間,而是與實參數組公用存儲單元。
       實參數組和形參數組類型要保持一致。 
       
     “值傳遞”:對形參修改不影響實參。
     “地址傳遞”:修改形參就相當於修改實參。

    

#include<stdio.h>                     //數組元素做實參

int main()
{
    void print(int n);
    int score[5];
    int i;
    for(i=0; i<5; i++)
    {
        printf("請依次輸入第%d位同學的成績:",i+1);
        scanf("%d",&score[i]);
    }
    for(i=0;i<5;i++)
    {
        print(score[i]);                 //傳遞的是數組元素的值
    }
    return 0;
}

void print(int n)          
{
 printf("%d ",n);
}


#include<stdio.h>                                //數組名做實參、形參
int main()
{
    float average(float x[]);
    float score[5],ave;
    int i;
    for(i=0; i<5; i++)
    {
        printf("請依次輸入第%d位同學的成績:",i+1);
        scanf("%f",&score[i]);
    }
    ave=average(score);                                //傳遞的是數組的首地址
    printf("該%d位同學的平均成績爲:%.2f\n",i,ave);
}

float average(float x[])
{
    float num=0.,ave;
    int i;
    for(i=0; i<5; i++)
    {
        num+=x[i];
    }
    ave=num/5;
    return ave;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章