数组指针——指向数组的指针(通过指针控制数组)
//一维数组int arr1[5] = { 1,2,3,4,5 };int(*arrP)[5] = &arr1; //定义数组指针 必须用&arr1, arr1是数组首元素的地址;&arr1是代表数组地址虽然地址都一样但是当加1的时候就有区别了,说明还是代表的不同东西for (int i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++) //当遍历数组是一个方法时不用写死(得到数组的行列数) {printf("arr1[%d]=%d\n", i, (*arrP)[i]);}printf("--------------------------------\n");//二维数组int arr2[3][5] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15} };arrP = arr2; //数组指针指向二维数组for (int i = 0; i < sizeof(arr2) / sizeof(arr2[0]); i++)//当遍历数组是一个方法时不用写死(得到数组的行列数) {for (int j = 0; j < sizeof(arr2[0]) / sizeof(arr2[0][0]); j++){printf("int[%d][%d]=%d\n", i, j, (*(arrP + i))[j]);// printf("int[%d][%d]=%d\n", i, j, arr2[i][j]); }}printf("--------------------------------\n");//三维维数组int arr3[2][3][4] = {{{ 1 ,2 ,3 ,4 },{ 5 ,6 ,7 ,8 },{ 9 ,10 ,11 ,12 }},{{ 13 ,14 ,15 ,16 },{ 17 ,18 ,19 ,20 },{ 21 ,22 ,23 ,24 } }};int(*arrP2)[3][4] = arr3;//这个是第一次见到,是自己通过数组指针推倒出来的,我感觉它叫三维数组指针还是二维数组指针合适呢?//int(**arrP3)[4]; //这样写也正确但是不能把arr3地址付给它,这个我没从书上见过,是自己通过数组指针推倒出来的,这是数组二级指针?for (int i = 0; i < sizeof(arr3) / sizeof(arr3[0]); i++){for (int j = 0; j < sizeof(arr3[0]) / sizeof(arr3[0][0]); j++){for (int k = 0; k < sizeof(arr3[0][0]) / sizeof(arr3[0][0][0]); k++){//printf("int[%d][%d][%d]=%d\n",i,j,k,arr3[i][j][k]);printf("int[%d][%d][%d]=%d\n", i, j, k, (*(*(arrP2 + i) + j))[k]);}}}getchar();
指针和数组直接对应关系之如何记忆
转载于:https://www.cnblogs.com/zakers/p/6933609.html
数组指针——指向数组的指针(通过指针控制数组)相关推荐
- 【c语言】定义一个指针数组,指向5个不同的char型数组
最近在准备复试的上机考试,顺便帮大一小孩做C语言作业. 其中有一道题目是将五个单词排序后输出 想到了利用<string.h>库函数中的strcmp,但是逐一比较只能找到最大值或最小值,没有 ...
- C和指针之指针数组和指向数组的指针
1.指针数组 定义一个指针数组,该数组中每个元素是一个指针,每个指针指向哪里就需要程序中后续再定义 int *p[10]; 2.指向数组的指针 定义一个数组指针,该指针指向含10个元素的一维数组(数组 ...
- C语言指针的那些事:第三篇(函数指针,指针函数,函数指针数组,指向函数指针数组的指针)
文章目录 1. 函数指针 1)函数指针的例题 2. 指针函数 3. 函数指针数组 1)函数指针数组的用途 4. 指向函数指针数组的指针 5. 一些后话 1. 函数指针 函数指针就是指向函数的指针:本质 ...
- C语言结构体中指针指向数组,指向结构体类型数组的指针的使用
指向结构体类型数组的指针的使用 定义一个结构体类型数组,其数组名是数组的首地址,下面是关于指向结构体类型数组的指针的使用具体介绍,欢迎阅读! 定义结构体类型的指针,既可以指向数组的元素,也可以指向数组 ...
- C语言字符型数组ppt,C语言第13讲指针与字符串(字符数组).ppt
C语言第13讲指针与字符串(字符数组).ppt 6.2.3 指针与字符串(字符数组) C语言用字符数组存放字符串. 字符数组元素个数确定,一般用下标控制循环. 字符串有效字符个数由0确定,用结束符0控 ...
- 【C语言】小妹不懂指针和数组的关系?那就安排指针数组关系详解
目录 前言 一.什么是数组 二.什么是指针 三.指针变量的大小 四.数组和指针的关系 五.指针变量的自增自减运算 六.两个参数确定一个数组 七.字符型指针和字符型数组 总结 写在最后 前言 前段时间整 ...
- 让指针指向初始位置c语言,初始C语言中的指针(翁凯男神MOOC)
运算符 & ●scanf("%d",&i); ●获得变量的地址,它的操作数必须是变量 ● int i; printf("%x",&i) ...
- 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针排序 | 通过 交换指针指向的内存数据 方式进行排序 )
文章目录 一.二维指针 排序 ( 通过 交换指针指向的内存数据 方式进行排序 ) 二.完整代码示例 一.二维指针 排序 ( 通过 交换指针指向的内存数据 方式进行排序 ) 在上一篇博客 [C 语言]二 ...
- C++基类指针指向派生类(指针)
我们常用基类指针指向派生类对象来实现多态性. 私有继承不允许基类指针指向派生类 基类指针只能访问到基类中含有的公有成员. 当用基类指针指向派生类对象在动态分配堆上内存的时候,析构函数必须是虚函数! 成 ...
- 【C 语言】多级指针 ( 在函数中生成 二级指针 | 通过传入的 三级指针 进行间接赋值 )
文章目录 前言 一.在函数中生成 二级指针 ( 通过传入的 三级指针 进行间接赋值 ) 二.完整代码示例 前言 如果要 通过 函数形参 间接赋值 修改 nnn 级指针, 需要向函数中传入 n+1n + ...
最新文章
- ti的硬件时钟和系统时钟同步
- 数据同步的终极解决方案,阿里巴巴开源的Canal框架当之无愧!!
- MLNLP顶会论文发表总榜:谷歌最狂,清北入前十,周明、张岳、刘挺华人前三...
- linux如何把nfs数据导出来,linux – NFS导出已经挂载NFS的目录(在服务器上)
- 释疑の采购订单的批量修改
- 网易2019实习生Java编程题
- HttpContext 来源(System.Web.HttpContext.Current值为null的问题)
- 爬取B站免费视频--python代码赶快拿
- 单应矩阵,基本矩阵,本质矩阵
- 用jQuery实现页面遮罩弹出框
- JavaScript函数的arguments(2)
- nosql数据库之Redis集群
- html a标签填写header,header中添加a标签,点击无反应
- Tcl/Tk的一些笔记
- 计算机毕业设计之java+ssm供应链管理信息系统
- 燃料电池多点恒功率工作Cruise仿真模型
- 前端项目中package.json到底是什么,又充当着什么作用呢?一文来带你了解package.json!
- [几何画板]正十七边形的做法
- 新手上路之第一次自驾游
- 2021年宣传部第一次ps培训总结