利用二级指针对二位数组int 型 进行赋值与输出?
可以先让一个一级指针指向二维数组里的第一个数组,然后再用二级指针指向这个一级指针,然后就可以让二级指针来对数组进行赋值和输入了。
测试代码如下:
参考链接:
#include <stdio.h>
#define N 2 // 指定二维数组行数
#define M 3 // 指定二维数组列数
int main(void){
int nums[N][M];
// https://www.cnblogs.com/ywsoftware/p/4527239.html
// 先使用int指针指向二维数组第一个数组
int*p1 =nums[0];
// 然后让二级指针,指向这个一级指针
int **p2=&p1;
// 使用二级指针 从输入获取数据赋值给二维数组
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
scanf("%d",*p2+i*M+j);
//printf("i=%d,j=%d, *(*p2+i*N+j)=%d\n",i,j,*(*p2+i*M+j));
}
}
// 使用二级指针,打印二维数组里的数据
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
//printf("i=%d,j=%d, *(*p2+i*N+j)=%d\n",i,j,*(*p2+i*M+j));
printf("%d ",*(*p2+i*M+j));
}
printf("\n");
}
return 0;
}