C/C++二维数组(数组指针)——二维数组的传值和二维数组的一维访问
来源:互联网 发布:双肩背包 知乎 编辑:程序博客网 时间:2024/06/14 21:29
二维数组既可以通过二维访问也可以通过一维访问。
对于二维数组的传值,引进了数组指针。
#include <stdio.h>void foo(int *p,int n)//一维访问{ for(int i=0;i<n;i++) printf("%d ",p[i]); printf("\n");}//因为二维数组的列数必须初始化void func(int (*p)[4],int n)//引入数组指针来传递二维数组{ for(int i=0;i<n;i++) { for(int j=0;j<4;j++) { printf("%d\t",p[i][j]);//*(*(p+i)+j) } putchar(10); } putchar(10);}int main(){ int arr[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; //一维访问 int *p=(int*)arr;//既可以通过二重循环访问,也可以通过一重循环访问 foo(p,12);//通过一维传递 for(int i=0;i<12;i++) printf("%d ",p[i]); printf("\n"); //二维访问 func(arr,3); for(int i=0;i<3;i++) { for(int j=0;j<4;j++) printf("%d\t",arr[i][j]);//*(*(arr+i)+j) putchar(10); } return 0;}
二维可以转一维访问,那么一维同样可以转二维访问:
#include <stdio.h>int main(){// int arr[10];// int *p = arr;// int **pp = &arr;//错误 int arr[12]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[4]=(int(*)[4])arr; for(int i=0;i<sizeof(arr)/sizeof(int[4]);i++) { for(int j=0;j<4;j++) { printf("%d\t",p[i][j]); } putchar(10); } return 0;}
0 0
- C/C++二维数组(数组指针)——二维数组的传值和二维数组的一维访问
- 一维数组和二维数组的转换表示(C#)
- C语言一维数组和二维数组的使用
- <C++>指针和二维数组
- C语言指针与二维数组(二维数组与一维数组关系)
- 二维数组指针和一维数组指针的区别
- 数组指针,指针数组,二维数组,二维数组的指针
- 二维数组和二维指针的关系
- 二维指针和二维数组的关系
- 二维指针和二维数组的区别
- 二维数组和二维指针的关系
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 关于二维数组和一维指针数组的区别
- C语言,二维数组时候的指针
- Java Socket编程
- 配置项、基线以及软件配置控制委员会
- combobox的值从主页面传递到子页面
- SDUT OJ面向对象程序设计上机练习十(运算符重载)
- unity3D-游戏/AR/VR在线就业班 C#入门实践课程dome二
- C/C++二维数组(数组指针)——二维数组的传值和二维数组的一维访问
- SpringMVC学习 文件上传
- 项目组织结构的3种类型:职能型、项目型和矩阵型
- pykafka中consumer_group的设置
- SQlite数据库的使用
- 微信、微博、Facebook、Twitter等社交媒体分享方案探索
- 思维导图MindManager基础教程
- 在Unreal4中如何连接自定义服务器
- 13计本2班第二次实验解析【补充】