對二维数组的探討
来源:互联网 发布:vb文本框内容不可编辑 编辑:程序博客网 时间:2024/06/05 03:03
這些僅僅是小弟愚見,以拋磚引玉之用。望各位不吝指教。
如果不是动态生成的二维数组,那么可以这么理解:
內存是依靠地址來确定内存中的唯一一个存储单元的,即只有一个参数。
所以在内存中,所有数据都是像一维数组那样顺序存储的,计算机都是不会区分几行几列。所谓的几行几列都是为了我们人类更加容易地思考和操作数据。
你想想, int a[9]={2, 4, 6, 8, 10, 12, 14, 16, 18}; 和 int a[3][3]={ {2,4,6}, {8,10,12}, {14,16,18} }; 哪個数组更容易操作和理解?
举具体的例子更容易理解,比如:int a[2][3]={ {1,2,3}, {4,5,6} }; 在内存中就是这样分布:
而我們可以这样去理解:
经过测试,可以得知(a+i) *(a+i) a[i] &a[i][0]的值都是一樣的,也就是說:他們都指向同一個地方a[i][0].
In other word,
a[i]的地址和a[i][0]的地址 一樣是&a[i][0]
但是,這豈不是和平常我們用二維字符數組有區別嗎?別急,下面一一說明。
對於 char a[2][3]={ {'0','1','2'}, {'3','4','5'} };
也是一樣的。
但是,用C++的cout輸出的時候
這也和之前的結論不矛盾。因為C++將a+1當作指針輸出,而其他都當作是字符串輸出。(後面的亂碼是因為沒有加上’\0’,你懂得)
0 0
- 對二维数组的探討
- 二维数组的用法
- 二维数组的传递
- 二维数组的排序
- 二维数组的排序
- 二维数组的应用
- 二维数组的地址
- 二维数组的运用
- 二维数组的指针
- 二维数组的排序
- 二维数组的初始化
- 二维数组的初始化
- 二维数组的动态分配
- 二维数组的输出
- js的二维数组
- Python的二维数组
- 二维数组的查找
- 二维数组的初始化
- 在IPhone桌面的应用程序图标右上角显示数字
- Thinking in Java 源码的获取以及编译问题
- 前几天所有吐槽12306验证码的都应该站出来向12306道歉
- 用户空间的spi驱动 .
- 最新【snapshot】DCMTK3.6.1(MD支持库)安装说明
- 對二维数组的探討
- 基于Linux下的UDP编程
- OpenCV Mat数据类型及位数总结
- 基于ui automation的计算器测试例子
- ICCV 2013
- 修改linux文件句柄数
- Linux C编程---网络编程
- 【python系列】列表list的操作讲解
- Unity3D面试题汇总