c語言中數組,指針數組,數組指針,二維數組指針


1.數組和指針

int array[5] = {1,2,3,4,5};// 定義數組
   // 1. 指針和數組的關系
  int * pa = array;
   pa = array; // p[0] == *(p+0) == array[0] == *(array+0) printf("%p\n", pa); printf("%p\n", array); /* 訪問數組兩種方式 1. 下標法訪問 數組名[下標] 指針[下標] 下標:偏移量 2. 指針法訪問 *(p+1) */

2.指針數組

    int array[5] = {1,2,3,4,5};// 定義數組
    int (*p)[5] = &array;// 定義數組指針
    int *arr[5];//指針數組,數組中所以得元素保留的是int指針的位置

    *p = p[0];
    (*p)[1]  == array[1];
    p[0][1]  == (*p)[1] == array[1];

3.二維數組指針

    // 3 二維數組的指針
    int array2[2][3] = {{1,2,3},{4,5,6}};
    int (*p2)[2][3]  = NULL;
    p2 = &array2;// 把數組賦值給數組指針
    *p == array2;
    (*p)[0][0] == p[0][0][0];
 //    /**
    // p + 1 跨過6*4 個字節
    // p[0] + 1 跨過3*4個字節
    // p[0][0] + 1 跨過4個字節

    // p[0][0][0] + 1  二維數組第一個元素值+1

 //    */

4.指針數組

數組中的元素都是指針(地址)

    int *arr[5];//指針數組,數組中所以得元素保留的是int指針的位置
        int a = 1;
        arr[1] = &a;

 

5.指針的指針

    //4.二維指針
    int a ;
    int *p = &a;
    int **pp = &p;// 指針的指針

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM