zoukankan      html  css  js  c++  java
  • 数组指针——指向数组的指针(通过指针控制数组)

    //一维数组
        int arr1[5] = { 1,2,3,4,5 };
        int(*arrP)[5] = &arr1;    //定义数组指针 必须用&arr1, arr1是数组首元素的地址;&arr1是代表数组地址虽然地址都一样但是当加1的时候就有区别了,说明还是代表的不同东西
        for (int i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++)  //当遍历数组是一个方法时不用写死(得到数组的行列数) 
        {
            printf("arr1[%d]=%d
    ", i, (*arrP)[i]);
        }
        printf("--------------------------------
    ");
        //二维数组
        int arr2[3][5] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15} };
        arrP = arr2;  //数组指针指向二维数组
        for (int i = 0; i < sizeof(arr2) / sizeof(arr2[0]); i++)//当遍历数组是一个方法时不用写死(得到数组的行列数)
        {
            for (int j = 0; j < sizeof(arr2[0]) / sizeof(arr2[0][0]); j++)
            {
                printf("int[%d][%d]=%d
    ", i, j, (*(arrP + i))[j]);// printf("int[%d][%d]=%d
    ", i, j, arr2[i][j]);
            }
        }
        printf("--------------------------------
    ");
        //三维维数组
        int arr3[2][3][4] = {
            {{ 1 ,2 ,3 ,4 },{ 5 ,6 ,7 ,8 },{ 9 ,10 ,11 ,12 }},
            {{ 13 ,14 ,15 ,16 },{ 17 ,18 ,19 ,20 },{ 21 ,22 ,23 ,24 } }
        };
        int(*arrP2)[3][4] = arr3;//这个是第一次见到,是自己通过数组指针推倒出来的,我感觉它叫三维数组指针还是二维数组指针合适呢?
        //int(**arrP3)[4];    //这样写也正确但是不能把arr3地址付给它,这个我没从书上见过,是自己通过数组指针推倒出来的,这是数组二级指针?
        for (int i = 0; i < sizeof(arr3) / sizeof(arr3[0]); i++)
        {
            for (int j = 0; j < sizeof(arr3[0]) / sizeof(arr3[0][0]); j++)
            {
                for (int k = 0; k < sizeof(arr3[0][0]) / sizeof(arr3[0][0][0]); k++)
                {
                    //printf("int[%d][%d][%d]=%d
    ",i,j,k,arr3[i][j][k]);
                    printf("int[%d][%d][%d]=%d
    ", i, j, k, (*(*(arrP2 + i) + j))[k]);
                }
            }
        }
        getchar();
    指针和数组直接对应关系之如何记忆
  • 相关阅读:
    窗口切换快捷键
    简单排序算法
    (转)Zen Coding 让 Notepad++ 代码书写健步如飞
    (转)图解SQL的Join
    第6章 AJAX
    今天是五四青年节
    看到的php的小知识
    (转)Notepad++配合QuickText打造快速高效的文本编辑器
    一种非常好的产生"唯一"临时文件的办法
    (转)linux 目录结构及其含义
  • 原文地址:https://www.cnblogs.com/zakers/p/6933609.html
Copyright © 2011-2022 走看看