C语言 二维数组做参数的形式

简介: C语言 二维数组做参数的形式

二维数组的3种参数形式


第一种形式:int arr[3][3]


void PrintArray01(int arr[3][3]){
  for (int i = 0; i < 3; i++){
    for (int j = 0; j < 3; j++){
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
}


第二种形式:int arr[][3]


void PrintArray02(int arr[][3]){
  for (int i = 0; i < 3; i++){
    for (int j = 0; j < 3; j++){
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
}


第三种形式:int(*arr)[3]


数组指针的形式


void PrintArray03(int(*arr)[3]){
  for (int i = 0; i < 3; i++){
    for (int j = 0; j < 3; j++){
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
}


案例代码



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
// 形式参数:第一种形式
void PrintArray01(int arr[3][3]) {
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
  arr[0][0] = 1111;
}
// 形式参数:第二种形式
void PrintArray02(int arr[][3]) {
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
  arr[0][0] = 2222;
}
// 形式参数:第三种形式
void PrintArray03(int(*arr)[3]) {
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
  arr[0][0] = 3333;
}
// 实际参数
void PrintArray04(int** arr) {
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      printf("arr[%d][%d]:%d\n", i, j, arr[i][j]);
    }
  }
  arr[0][0] = 4444;
}
void test() {
  int arr[][3] = {
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
  };
  printf("第一种:\n");
  PrintArray01(arr);
  printf("arr[0][0] = %d\n", arr[0][0]);
  printf("第二种:\n");
  PrintArray02(arr);
  printf("arr[0][0] = %d\n", arr[0][0]);
  printf("第三种:\n");
  PrintArray03(arr);
  printf("arr[0][0] = %d\n", arr[0][0]);
}
int main()
{
  test();
  return 0;
}
相关文章
|
C语言
C语言期末习题之求二维数组中的最大值
C语言期末习题之求二维数组中的最大值
169 0
|
9月前
|
存储 人工智能 Java
一文彻底搞定C语言中的二维数组
本文详细介绍了C语言中的多维数组,包括二维和三维数组的定义、初始化方式、内存布局及遍历方法。通过具体示例讲解了多种赋值技巧,并强调了数组在内存中按行存放的特点。希望这些内容能帮助你在编程路上不断成长!君志所向,一往无前!
542 1
一文彻底搞定C语言中的二维数组
|
C语言
C语言期末习题之二维数组转置
C语言期末习题之二维数组转置
146 0
|
存储 编译器 C语言
【C语言】数组(一维、二维数组的简单介绍)
【C语言】数组(一维、二维数组的简单介绍)
322 1
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
474 4
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
472 4
|
算法 C语言
C语言函数参数的声明及调用
C语言函数参数的声明及调用
178 1
|
C语言
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
124 0
|
C语言
C语言----指针模拟二维数组
C语言----指针模拟二维数组
77 0
|
存储 C语言 索引
C语言一维数组与二维数组详解及代码实例
C语言一维数组与二维数组详解及代码实例
296 0