【C語言入門】在函式間傳遞陣列

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand(time(0));
    int i,v[10];
    for(i=0;i<10;i++){
        v[i]=rand()%100;
    }
    for(i=0;i<10;i++){
        printf("%d ",v[i]);
    }
    printf("\n");
    int max=v[0];
    for(i=1;i<10;i++){
        if(v[i]>max){
            max=v[i];
        }
    }
    printf("Max: %d\n",max);
    return 0;
}

我們需要先產生一個陣列,再把陣列當參數傳到函式。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void arrayRand(int [10]);
int arrayPrint(int [10]);

int main()
{
    srand(time(0));
    int i,v[10];
    arrayRand(v);
    arrayPrint(v);
    printf("Max: %d\n",arrayPrint(v));
    return 0;
}

void arrayRand(int v[10]){
    int i;
     for(i=0;i<10;i++){
        v[i]=rand()%100;
        printf("%d ",v[i]);
    }
}

int arrayPrint(int v[10]){
    int max = v[0],i;
    for(i=1;i<10;i++){
        if(v[i] > max){
            max=v[i];
        }
    }
    return max;
}

在函數間傳送陣列

當函式參數式陣列型態時,與一般資料型態行為不一樣。一般資料型態會將引數複製一份候傳入函式,但是陣列型態卻不會複製一份陣列。

為了做出等於函式回傳的效果,我們可以將陣列作為引數傳入。當陣列作為引數傳入時,陣列內容的修改會套用到這個傳入的陣列本身。

為了與一般資料型態的行為相符,C語言導入了指標來處理各種陣列複製與存取的行為。

Leave a Comment

Your email address will not be published. Required fields are marked *