用指针操作多维数组
来源:互联网 发布:软件体系结构原理 编辑:程序博客网 时间:2024/05/17 00:13
/// @file exam_test.c/** @brief */#include <stdio.h>#include <stdlib.h>int main(){ /** 数组定义的格式 type ary[m] = {...}; ary[n] address is ? addr = ary[0] addr + sizeof(type)*n */ /// 一维数组的例子 int ary[5] = {1,2,3,4,5}; int iAddr_ary_3 = (int)&ary[0] + sizeof(int) * 3; int iContent = *((int*)iAddr_ary_3); ///< iContent is 4 , is ary[3] /// 多维数组 #define ARY_ROW 3 #define ARY_COL 4 /// type is int int iAry[ARY_ROW][ARY_COL] = { {11, 12, 13, 14}, {22, 22, 23, 24}, {32, 32, 33, 34}}; /// 假设要访问的数组元素位置为 iAry[2][3] int iObjRow = 2; int iObjCol = 3; int iObjContent = 0; int iAddr = (int)&iAry[0][0] + sizeof(iAry[0]) * iObjRow + sizeof(int) * iObjCol; iObjContent = *((int*)iAddr); ///< iObjContent is 34, is iAry[2][3] /// 求二维数组元素的公式推导 iAddr = (int)&iAry[0][0] + sizeof(iAry[0]) * iObjRow + sizeof(int) * iObjCol; iAddr = (int)&iAry[0][0] + sizeof(int) * ARY_COL * iObjRow + sizeof(int) * iObjCol; iAddr = (int)&iAry[0][0] + sizeof(int) * (ARY_COL * iObjRow + iObjCol); iObjContent = *((int*)iAddr); ///< iObjContent is 34, is iAry[2][3] /// 在不知道多维数组维数时, 可以使用下面方法求多维数组元素值 iAddr = (int)&iAry[0][ARY_COL * iObjRow + iObjCol]; iObjContent = *((int*)iAddr); ///< iObjContent is 34, is iAry[2][3]system("pause");return 0;}
0 0
- 用指针操作多维数组
- 多维数组和指针操作
- 用指针访问多维数组
- 多维数组和多维指针
- 多维数组 和 多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组与多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组 用typedef简化指针
- 用指针访问多维数组中的元素
- 多维数组和指针
- 指针和多维数组
- 多维数组和指针
- 多维数组与指针
- 指针和多维数组
- 指针与多维数组
- Windows平台下安装MongoDB
- 2015暑期实习作品
- uboot ddr配置
- ACTION_POWER_DISCONNECTED广播使用解析
- JAVA学习5_Java NIO 报java.nio.charset.MalformedInputException: Input length = 1异常
- 用指针操作多维数组
- 咕咚登陆 注册 核心算法 上传步数【分析】
- K线战术精要——阻击涨停板
- 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符
- VTK6.3.0 vs VTK6.2.0
- ARM指令中STM和LDM
- Android高斯模糊,左右有白边
- Touch Handling in Cocos2D 3.x(四)
- "IValueConverter" does not support converting from a string.——C# WPF 提示错误