首页  

二维整型数组参数传递的三种方式     所属分类 c 浏览量 822
形参给出第二维的长度 
void printArr2D(int arr[][3],int rows,int columns)

形参声明为指向数组的指针
void printArr2D_1(int (*p)[3],int rows,int columns)

形参声明为指针 指向第一个元素(第一行 第一列)
void printArr2D_2(int *p,int rows,int columns)

int arr[2][3] ={0,1,2,3,4,5};
printf("%p %p %p\n",arr,&arr[0],&arr[0][0]);
3个地址同一个
  
行指针
元素指针



#include "stdio.h" void printArr2D(int arr[][3],int rows,int columns){ for(int i=0;i < rows;i++){ for(int j=0;j < columns;j++){ printf("%d ",arr[i][j]); } printf("\n"); } printf("\n"); } void printArr2D_1(int (*p)[3],int rows,int columns){ for(int i=0;i < rows;i++){ for(int j=0;j < columns;j++){ printf("%d ",p[i][j]); } printf("\n"); } printf("\n"); } void printArr2D_2(int *p,int rows,int columns){ for(int i=0;i < rows;i++){ for(int j=0;j < columns;j++){ printf("%d ",*(p + (i*columns + j))); } printf("\n"); } printf("\n"); } int main(){ int arr[2][3] ={0,1,2,3,4,5}; printf("%p %p %p\n",arr,&arr[0],&arr[0][0]); printArr2D(arr,2,3); printArr2D_1(arr,2,3); printArr2D_1(&arr[0],2,3); printArr2D_2(&arr[0][0],2,3); printArr2D_2((int*)arr,2,3); return 0; }
二维数组函数入参用法

上一篇     下一篇
几个有趣的C语言面试题及答案

c 指针数组

二维数组函数入参用法

C语言指针运算和指针类型

C语言指针和二维数组

各种指针的大小