/**

通过指针来访问一维数组,二维数组,多维数组

*/

#include

const int COLS=3;

const int COUNT=4;

//通过一级指针,计算偏移量来遍历一维数组

void printSingleDimensionalArray(int *data,int data_len);

//通过一级指针,计算偏移量来遍历二维数组:

void printDoubleDimensionalArray(int *array,int rows,int cols);

//通过一级指针,计算偏移量来遍历三维数组:

void printThreeDimensionalArray(int *array_3,int rows,int cols,int count);

//使用指向二维数组的指针来遍历三维数组

void printThreeDimensionalArray2(int (*p)[COLS][COUNT],int rows);

void main()

{

int data[]={1,2,3,4,5,6,7,8,9};

int data_len=sizeof(data)/sizeof(data[0]);

printf("data[6]=%d\n",*(data+6));//7

printf("一维数组data:\n");

printSingleDimensionalArray(data,data_len);

int array[2][3]={{1,2,3},{4,5,6}};

printf("二维数组array:\n");

printDoubleDimensionalArray(array,2,3);

int count=0;

int array_3[2][3][4];

int i,j,k;

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

{

for(k=0;k<4;k++)

{

array_3[i][j][k]=count++;

}

}

}

printf("三维数组array_3:\n");

printThreeDimensionalArray(array_3,2,3,4);

//三维数组的初始化

int array_33[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},

}

};

printf("三维数组array_33:\n");

printThreeDimensionalArray(array_33,2,3,4);

printf("三维数组array_33:\n");

printThreeDimensionalArray2(array_33,2);

}

//通过一级指针,计算偏移量来遍历一维数组

void printSingleDimensionalArray(int *data,int data_len)

{

int i;

for(i=0;i

printf("%4d",*(data+i));//7

printf("\n");

}

//通过一级指针,计算偏移量来遍历二维数组:

void printDoubleDimensionalArray(int *array,int rows,int cols)

{

int i,j;

for(i=0;i

{

for(j=0;j

{//通过一位指针,计算偏移量来遍历二维数组:

printf("%4d",*(array+i*cols+j));

}

printf("\n");

}

}

//通过一级指针,计算偏移量来遍历三维数组:

void printThreeDimensionalArray(int *array_3,int rows,int cols,int count)

{

int i,j,k;

for(i=0;i

{

printf("{\n");

for(j=0;j

{

for(k=0;k

{

// array[i][j][k]=count++;

// printf("%4d",array_3[i][j][k]);

printf("%4d",*(array_3+i*3*4+j*4+k));

}

printf("\n");

}

printf("}\n");

}

}

//使用指向二维数组的指针来遍历三维数组

void printThreeDimensionalArray2(int (*p)[COLS][COUNT],int rows)

{

int i,j,k;

for(i=0;i

{

printf("{\n");

for(j=0;j

{

for(k=0;k

{

// array[i][j][k]=count++;

printf("%4d",p[i][j][k]);

// printf("%4d",*(array_3+i*3*4+j*4+k));

}

printf("\n");

}

printf("}\n");

}

}

结果:

data[6]=7

一维数组data:

1 2 3 4 5 6 7 8 9

二维数组array:

1 2 3

4 5 6

三维数组array_3:

{

0 1 2 3

4 5 6 7

8 9 10 11

}

{

12 13 14 15

16 17 18 19

20 21 22 23

}

三维数组array_33:

{

1 2 3 4

5 6 7 8

9 10 11 12

}

{

13 14 15 16

17 18 19 20

21 22 23 24

}

三维数组array_33:

{

1 2 3 4

5 6 7 8

9 10 11 12

}

{

13 14 15 16

17 18 19 20

21 22 23 24

}

Process returned 2 (0x2) execution time : 0.312 s

Press any key to continue.

c语言三维数组 三维指针,C语言 通过指针访问一维数组,二维数组,三维数组。...相关推荐

  1. linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  2. c语言malloc申请三维数组,C语言malloc函数为一维,二维,三维数组分配空间

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  3. C语言malloc函数为一维,二维,三维数组分配空间

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  4. MATLAB一维、二维、三维 标量函数绘图

    MATLAB一维.二维.三维 标量函数绘图 1. 一维标量绘图plot 2. 二维.三维标量绘图 2.1. mesh函数标量绘图 2.2. surf函数标量绘图 2.3. contour(x,y,z) ...

  5. C++数组(一维、二维、三维)的动态分配new、初始化memset和释放delete

    [原文]http://blog.csdn.net/shanzhizi/article/details/7835752 数组的动态分配.初始化和释放经常用到,这里总结一下,尤其是二维数组 一维数组 一维 ...

  6. 神经网络之多维卷积的那些事(一维、二维、三维)

    文章目录 前言 一维卷积Conv1d 二维卷积Conv2d 三维卷积Conv3d 卷积中的特征图大小计算方式 总结 前言 一般来说,一维卷积用于文本数据,二维卷积用于图像数据,对宽度和高度都进行卷积, ...

  7. R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化PCA所有的主成分绘制散点图矩阵、降维后的两个(三个)核心主成分的二维、三维可视化图形、方差解释的量、载荷图等

    R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化PCA所有的主成分绘制散点图矩阵.降维后的两个(三个)核心主成分的二维.三维可视化图形.方差解释的量.载荷图等 目录

  8. C语言动态开辟数组(一维与二维)【malloc() free()】

    了解并熟悉malloc(),calloc(),realloc(),free()等动态开辟函数. 重点使用malloc()与free()进行数组的动态开辟! 一.认识malloc().free() C+ ...

  9. HDU - 5517 Triple(三维偏序-二维树状数组/CDQ分治)

    题目链接:点击查看 题目大意:给出 n 个二元对 ( a , b ) 和 m 个三元对 ( c , d , e ),对于所有 b == e 的二元对和三元对,可以通过某种运算形成一个新的三元对 ( a ...

  10. python二维、三维、思维数组之间的转化

    python二维.三维.思维数组之间的转化 import numpy as np# 假设你有一个二维数组,形状为(32,10000) gray = np.random.randint(0, 256, ...

最新文章

  1. SSM进出帐账单正负显示
  2. Tornado報錯AttributeError: Unrecognized option 'port'
  3. 字符编码-Unicode等
  4. eclipse javafx找不到或无法加载主类_JVM类加载
  5. android 日历 时间选择,Android--DatePicker和TimePicker(日历选择器与时间选择器)
  6. 用GDB调试程序(11)──查看运行时数据(2)-转
  7. axure9数据统计插件_数据分析太棘手?常用8大统计软件解决难题!
  8. android gradle 设置,android gradle配置指南
  9. (转)OpenStack Kilo 版本中 Neutron 的新变化
  10. 软件版本的GA、RC的具体含义
  11. UE4针对特殊的透明物体不应用后期效果
  12. Base64编码及应用
  13. 宝藏级UI组件库:FirstUI,微信小程序版+uniapp版更新至1.6.0,完美支持vue3
  14. 京东上位2018年财富中国500强民企第一席 首次实现全年盈利
  15. Redis--Redis数据过期策略详解
  16. MAC下downie下载网页视频报错“转换错误”解决方案
  17. 计算机在生物学中的应用课程,计算机技术在生物教学中的作用与应用
  18. itms-services php,APP发布系统 ipa文件上传和下载 itms-service协议
  19. 基于JSP的汽车配件销售管理系统
  20. 面包师问题--进程同步问题

热门文章

  1. SparkSQL实战小项目之热门商品top3
  2. (SpringBoot)依赖注入的几种方式总结
  3. Log4j的ConversionPattern参数的格式含义
  4. LaTex 论文排版(3): 插入参考文献
  5. 2. 产品的主线与产品的爆点
  6. hap项目功能总结,以及技术注意点
  7. Android课程表的设计开发
  8. 短视频创作中远、全、近景和特写的意义,懂了才能拍出爆款视频
  9. 暑期实习以及实习与秋招浅谈
  10. 可变悬挂与空气悬挂的区别_可变悬挂_什么是可变悬挂_太平洋汽车网百科