指针DAY3

发布时间 2023-07-26 22:01:01作者: Ninnne

指针3

指针和多维数组

  1.  

  1.  

  1. 代码:

    #include <stdio.h>
    int main(){
        int C[3][2][2]={{{2,5},{7,9}},
                         {{3,4},{6,1}},
                         {{0,8},{11,13}}};
            printf("%d %d %d %d\n",C,*C,C[0],&C[0][0]);
            printf("%d\n",*(C[0][0]+1));             
    }

    输出结果:

    6487536 6487536 6487536 6487536
    5

    可以看出下列表示是等效的,输出的结果相同

    C , *C , C[0] , &C[0][0]
    1. 代码:

    #include <stdio.h>
    void Func(int *A) {
    

    }
    int main(){
    int C[3][2][2]={{{2,5},{7,9}},
    {{3,4},{6,1}},
    {{0,8},{11,13}}};
    int A[2] = {1,2};
    int B[2][3] = {{2,4,6},{5,7,8}};//B返回一个一维数组的指针 (int ()[3])
    Func(A);// A 返回指向整型的指针 (int

    }

    为了让函数接收B作为参数,应该修改代码为:

    #include <stdio.h>
    void Func(int A[][3] ){
    

    }
    int main(){
    int C[3][2][2]={{{2,5},{7,9}},
    {{3,4},{6,1}},
    {{0,8},{11,13}}};
    int A[2] = {1,2};
    int B[2][3] = {{2,4,6},{5,7,8}};//B返回一个一维数组的指针 (int ()[3])
    Func(B);// A 返回指向整型的指针 (int

    }

    如果传三维数组代码如下:

    void Func(int A[][2][2] ){
    

    }
    int main(){
    int C[3][2][2]={{{2,5},{7,9}},
    {{3,4},{6,1}},
    {{0,8},{11,13}}};
    int A[2] = {1,2};
    int B[2][3] = {{2,4,6},{5,7,8}};//B返回一个一维数组的指针 (int ()[3])
    Func(C);// A 返回指向整型的指针 (int

    }

    1. 如:**A因为二维以上的维度需要指定,所以不能这样定义