二维数组
来源:互联网 发布:linux 开启端口软件 编辑:程序博客网 时间:2024/06/06 07:43
#include<stdio.h>int main(){ int a[3][4]={{1,6,7},{4,2,5},{-3,9,8,3}}; printf("%d\n" ,*(*(a+1)+2)); return 0;}
一个二维数组
a[0] [0] 1,6,7
a[1] [0] 4,2,5
a[2] [0] -3,9,8,3
首先a表示首元素a[0][0]的地址
a+1表示a[1][0](第二组元素的地址)
*(a+1) = a[1] //a[1]表示数组名为a[1]的数组的首元素的地址,既a[1][0]的地址。
然后*(a+1)+2就在第二个数组首元素的地址上加8个字节就到了a[1][2]的地址
最后到了*(*(a+1)+2) ==a[1][2] = {5}
既最后的结果5。
今天又听人讲到一种理解,说a+1指向的是行数*(a+1)则指向列数,之后的*(a+1)+2就是对列加二,所以就是5。我觉得这样也可以理解
0 0
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- 二维数组
- Unity数据持久化
- Linux ip 命令
- 对EditText拓展完成输入内容分隔处理
- Web前端和后端之区分
- ORACLE PROCEDURE PRACTICE
- 二维数组
- Fragment,Activity切换动画--Demo
- 数据流重导向(redirect)
- uva11996 - Jewel Magic 伸展树
- Linux内核中锁机制之完成量、互斥量
- 第十七周 项目二 引用作为形参(给三个数排序)
- snmp安装配置
- Union和Union All的区别
- Java多线程程序设计