21xrx.com
2025-03-13 23:42:54 Thursday
登录
文章检索 我的文章 写文章
C语言二维数组指针的定义及使用方法
2023-06-16 14:42:49 深夜i     --     --
C语言 二维数组 指针 动态内存分配 双重循环

在C语言中,二维数组可以用指针来表示和操作。通过指针定义二维数组,可以方便地访问数组元素,进而实现复杂的数据结构和算法。下面介绍C语言二维数组指针的定义及使用方法。

在C语言中,二维数组可以定义为指针数组的形式:

int **array;

也可以定义为数组指针的形式:

int (*array)[n];

其中n表示数组每行的元素个数。两种定义方式的区别在于指针所指向的类型不同。指针数组中的每一个元素都是指向整型指针的指针,每个指针指向的是一个长度为n的整型数组;数组指针中的元素是一个指向长度为n的整型数组的指针。因此,指针数组可以动态地分配内存,而数组指针的内存大小是固定的。

在使用二维数组指针时,需要使用双重循环来遍历数组元素。下面是一个实例代码:

int main()

{

 int i, j;

 int **array;

 int n = 3, m = 4;

 // 动态分配二维数组内存

 array = (int **)malloc(sizeof(int *) * n);

 for (i = 0; i < n; i++) {

  array[i] = (int *)malloc(sizeof(int) * m);

 }

 // 赋值

 for (i = 0; i < n; i++) {

  for (j = 0; j < m; j++) {

   array[i][j] = i * m + j;

  }

 }

 // 输出

 for (i = 0; i < n; i++) {

  for (j = 0; j < m; j++) {

   printf("%d ", array[i][j]);

  }

  printf("\n");

 }

 // 释放内存

 for (i = 0; i < n; i++) {

  free(array[i]);

 }

 free(array);

 return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复