数组传参C语言

#include
test1(int a[]){   //数组传参数组接收 
    int i=0;
    for(i=0;i<6;i++)
    printf("%d ",a[i]);
    printf("\n");
}
 test2(int a[6]){
    int i=0;
    for(i=0;i<6;i++)
    printf("%d ",a[i]);
    printf("\n");
}
test3(int *a){   //一维数组名相当于首元素的地址,可以用一级指针接收 
    int i=0;
    for(i=0;i<6;i++)
    printf("%d ",*(a+i));
    printf("\n");
}
test4(int* b[]){
    int i=0;
    for(i=0;i<3;i++)
    printf("%d ",*b[i]);
    printf("\n");
}
test5(int* b[3]){
    int i=0;
    for(i=0;i<3;i++)
    printf("%d ",*b[i]);
    printf("\n");
}
test6(int* *b){  //一维数组名是首元素地址,解引用后是元素x,y,z的地址 ,所以是二级指针 
    int i=0;
    for(i=0;i<3;i++)
    printf("%d ",*(*(b+i)));
    printf("\n");
}
test7(int (*c)[3]){        //数组名是首元素的地址,相当于把a[0]={1,2,3}的地址传过来了,即&a,所以用数组指针接收,int(*)[3]用于接收用于存储三个整形元素的数组的地址 
    int i=0,j=0;
    for(i=0;i<2;i++)
        for(j=0;j<3;j++)
        printf("%d",*(*(c+i)+j));
        printf("哈哈\n");
    
}
test8(int c[2][3]){        //数组名是首元素的地址,相当于把a[0]={1,2,3}的地址传过来了,即&a,所以用数组指针接收,int(*)[3]用于接收用于存储三个整形元素的数组的地址 
    int i=0,j=0;
    for(i=0;i<2;i++)
        for(j=0;j<3;j++)
        printf("%d",*(*(c+i)+j));
        printf("哈哈\n");
}
test9(int c[][3]){        //数组名是首元素的地址,相当于把a[0]={1,2,3}的地址传过来了,即&a,所以用数组指针接收,int(*)[3]用于接收用于存储三个整形元素的数组的地址 
    int i=0,j=0;
    for(i=0;i<2;i++)
        for(j=0;j<3;j++)
        printf("%d",*(*(c+i)+j));
        printf("哈哈\n");
    
}
test10(int *c[][2]){
    int i=0,j=0;
    for(i=0;i<1;i++)
        for(j=0;j<2;j++)
        printf("%d",*(*(*(c+i)+j)));
        printf("呵呵\n");
}
test11(int* (*c)[2]){
    int i=0,j=0;
    for(i=0;i<1;i++)
        for(j=0;j<2;j++)
        printf("%d",*(*(*(c+i)+j)));
        printf("呵呵\n");
}

int main(){
    //一维整形数组传参 
    int a[6]={1,2,3,4,5,6};
    test1(a);
    test2(a);
    test3(a);
    //一维指针数组传参 
    int x=1,y=2,z=3;
    int* b[3]={&x,&y,&z};  
    test4(b); 
    test5(b);     
    test6(b);  
    //二维整形数组传参
    int c[2][3]={1,2,3,4,5,6};
    test7(c);
    test8(c);
     test9(c);
      //二维指针数组传参
      int g=1,h=2;
      int* d[1][2]={&g,&h};
     test10(d);
    test11(d);
    return 0;
}

你可能感兴趣的:(c语言)