二维数组与指针

Posted helloworld2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组与指针相关的知识,希望对你有一定的参考价值。

技术图片

技术图片

技术图片
#include <stdio.h>

int main()

    int array[4][5] = 0;

    printf("sizeof int: %d\\n", sizeof(int));
    printf("array: %p\\n", array);
    printf("array + 1: %p\\n", array + 1);

    return 0;
View Code
技术图片
#include <stdio.h>

int main()

    int array[4][5] = 0;
    int i, j, k = 0;

    for (i = 0; i < 4; i++)
    
        for (j = 0; j < 5; j++)
        
            array[i][j] = k++;
        
    

    printf("*(array+1): %p\\n", *(array + 1));
    printf("array[1]: %p\\n", array[1]);
    printf("&array[1][0]: %p\\n", &array[1][0]);
    printf("**(array+1): %d\\n", **(array+1));

    return 0;
View Code
技术图片
#include <stdio.h>

int main()

    int array[4][5] = 0;
    int i, j, k = 0;

    for (i = 0; i < 4; i++)
    
        for (j = 0; j < 5; j++)
        
            array[i][j] = k++;
        
    

    printf("*(array+1): %p\\n", *(array + 1));
    printf("array[1]: %p\\n", array[1]);
    printf("&array[1][0]: %p\\n", &array[1][0]);
    printf("**(array+1): %d\\n", **(array+1));
    printf("*(*(array+1)+3): %d\\n", *(*(array+1)+3));
    printf("array[1][3]: %d\\n", array[1][3]);

    return 0;
View Code
技术图片
#include <stdio.h>

int main()

    int array[2][3] = 0, 1, 2, 3, 4, 5;
    int (*p)[3] = array;

    printf("**(p+1): %d\\n", **(p+1));
    printf("**(array+1): %d\\n", **(array+1));
    printf("array[1][0]: %d\\n", array[1][0]);
    printf("*(*(p+1)+2): %d\\n", *(*(p+1)+2));
    printf("*(*(array+1)+2): %d\\n", *(*(array+1)+2));
    printf("array[1][2]: %d\\n", array[1][2]);

    return 0;
View Code

 

以上是关于二维数组与指针的主要内容,如果未能解决你的问题,请参考以下文章

C语言中二维数组行指针是啥

C语言中二维数组名是否可以看作指针数组名?

memcpy()对二维数组和二维指针操作的区别

C语言 指针初始化二维数组

c语言中如何通过二级指针来操作二维数组

C 语言二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )