二维整型数组参数传递的三种方式
所属分类 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语言指针和二维数组
各种指针的大小