Advertisement

C语言中的二维数组及其实现指针操作

阅读量:

C语言中二维数组与指针

  • 二维数组及其指针

    • 固定长度的二维数组
    • 动态的二维数组
  • 用指针的形式传递二维数组

  • 后记

二维数组及其指针

固定长度的二维数组

基于此设想,在我的计划中我将构建一个二维数组并生成指向该二维数组内存地址的一个指针

复制代码
    int arr[2][3] = {0, 1, 2, 3, 4, 5};
    int **ptr = arr;
复制代码
    int arr[2][3] = {0, 1, 2, 3, 4, 5};
    int (*ptr)[3] = arr;

当采用第一种方法时,在编译器中会出现如下提示:int (*)[3] 指针类型无法直接赋值给 int ** 指针类型。这是因为创建的二维数组arr[2][3]在内存中的实际分配情况是

因为arr是一个int类型的数组
每个内存单元占用4个字节的空间
假设元素arr[0][0]的位置是1000
每增加一个i值 元素arr[0][i]的内存位置将每隔4个字节递增 即从1001变为1025
进一步说明:

数组下标 实际地址 数组下标 实际地址 数组下标 实际地址
arr[0][0] 1000 arr[0][1] 1004

全部评论 (0)

还没有任何评论哟~