函式中如何傳遞陣列

回覆文章
cajhbb
系統管理員
文章: 993
註冊時間: 2018年 6月 30日, 02:16

函式中如何傳遞陣列

文章 cajhbb »

呼叫print(v)並非複製的動作,而是傳陣列的初始位址
第二行 void print(int v[])
第二行 void print(int v[3])
兩者相同,因為它只傳位址而已(己經隱性轉型)

代碼: 選擇全部

// 函式中如何傳遞一維陣列
#include <stdio.h>
void print(int v[]){
    int i;
    for(i=0;i<3;i++){
        printf("%d",v[i]);
    }
    printf("\n");    
}
int main() {
    int v[3]={1,2,3};
    print(v);
    return 0;
}
cajhbb
系統管理員
文章: 993
註冊時間: 2018年 6月 30日, 02:16

函式中如何傳遞二維陣列

文章 cajhbb »

https://www.youtube.com/watch?v=ZkBZmyk17Q8
解答
123
456
789

代碼: 選擇全部

// 函式中如何傳遞二維陣列
#include <stdio.h>
void print(int v[3][3]){
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
        printf("%d",v[i][j]);
        }
    printf("\n");    
    }
}
int main() {
    int v[3][3]={{1,2,3},{4,5,6},{7,8,9}};
    print(v);
    return 0;
}
解答
123
456
789

代碼: 選擇全部

// 函式中如何傳遞二維陣列
#include <stdio.h>
void print(int v[][3]){
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
        printf("%d",v[i][j]);
        }
    printf("\n");    
    }
}
int main() {
    int v[3][3]={{1,2,3},{4,5,6},{7,8,9}};
    print(v);
    return 0;
}
解答
1122
3344
5566

代碼: 選擇全部

// 函式中如何傳遞二維陣列
#include <stdio.h>
void print(int v[][2]){
    int i,j;
    for(i=0;i<3;i++){
        for(j=0;j<2;j++){
        printf("%d",v[i][j]);
        }
    printf("\n");    
    }
}
int main() {
    int v[][2]={{11,22},{33,44},{55,66}};
    print(v);
    return 0;
}
回覆文章