数组指针、数组首地址与内存的关系
来源:互联网 发布:java项目反编译 编辑:程序博客网 时间:2024/06/12 01:46
在下面的定义了一个结构体typedef unshort MB16typedef MB16 MDID;typedef MDID MDIDI[2];void test(MDIDI* mdid){ printf("%d,%d/n",mdid[0],mdid[1]);}void main(){ MDIDI m_mdidi; m_mdidi[0] = 1; m_mdidi[1] =2; test(m_mdidi);}当编译时,发现出错,报说类型不一致,查看一下,才知道MDIDI* mdid,这个保存的是MDIDI的地址,而MDIDI本身是数组的地址,所以MDIDI* mdid应该是指针的指针,它用保存了MDIDI地址的值。知道原因后,把test(m_mdidi);改成test(&m_mdidi);但是运行时结果却是1,0。有点不理解,然后跟踪了一个代码,找了一个内存,发现mdid[1]的地址变成0x00480744,而mdid[0]的地址是0x0048073c,说明加1时加了4个字节,那就是MDIDI*的一个存储内容所占用的字节。所以j最终的代码应该是void test(MB16 * mdid){ printf("%d,%d/n",mdid[0],mdid[1]);}void main(){ MDIDI m_mdidi; m_mdidi[0] = 1; m_mdidi[1] =2; test(m_mdidi);}这样,结果就正确了。从这个例子中,可以看到,基础还是比较差的了,有些东西学到了,但是没有理解,真正是知其然不知其所以然。其时这个例子用int来写可能就知道是这样写了。但是用上面的定义时,就发现了这些问题,说明没有理解教科书中里的真正函义了。
- 数组指针、数组首地址与内存的关系
- 指针剖析,地址关系 (二) 数组与指针、数组名的关系
- 指针与数组的关系
- 数组与指针的关系
- 指针与数组的关系
- 指针与数组的关系
- 指针与数组的关系
- 指针与数组的关系
- 指针与数组的关系
- 数组与指针的关系
- 关于C数组与指针的关系(主要是长度首地址内容)
- 数组指针、指针数组、地址的强制转换内存布局
- 数组指针、指针数组、地址的强制转换内存布局
- 数组指针、指针数组、地址的强制转换内存布局
- 二级指针与指针数组的关系
- 指针 、指针与数组函数的关系
- 二级指针与指针数组的关系
- 数组指针与指针数组的关系与区别
- WPF中使用AxisAngleRotation3D实现CAD的2D旋转功能
- (转)魔兽世界
- 希望我们的队员也能看到对手的优点,从而促进自身更好的提高
- dataset 导出为 excel
- 迈拓网络硬盘软件全攻略(5)mldonkey
- 数组指针、数组首地址与内存的关系
- 将ocx和DLL文件打包成cab文件,实现IE浏览器在线安装
- C++内存分配
- Java编程:实例分析J2ME网络编程的两种方法
- 惠州,只为打单
- wincvs rar类型文件出错
- 【转】C与C++的区别
- C#编码好习惯
- C/C++与Java多维数组,遍历与最大值获取方法!