1.类型说明

int *b;  //定义一个int型指针变量

int *p[3];   //定义一个int型指针数组的变量

int (*c)[3]  和  int (*)[3]:   //定义一个指向3个整形数组的指针变量

2.初始化赋值

假设二维数组为:

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

(1)用指针b表示二维数组时为:

int *b=a[0];   //将指针b指向a的首地址

二维数组的表示方式为:

a[i][j]=*(b+3*i+j) ;    //因为二维数组也是存放在连续地址上,只需要移动指针位置就可以了

(2)用指向整形数组指针的变量c来表示:

int (*c)[3]=a;   //将它指向a的首地址,数字中每一个单元代表a的每一行

二维数组的表示方式为:

a[i][j]=*(*(c+i)+j);    //*(c+i)+j表示a[i][j]地址,而*(*(c+i)+j);表示a[i][j]的值

(3)int型指针数组使用方式:

p是一个包含3个int型指针的数组,使用时,根据下标指向目标地址即可,如:

p[0]=&a[0][0];  p[1]=&a[0][1];    p[2]=&a[0][2] ;      //指向3个整形变量

3.具体代码和使用结果

#include <stdio.h>int main(int argc, char const *argv[])
{int a[3][3]={{0,1,2},{3,4,5},{6,7,8}};int *b=a[0];int (*c)[3]=a;int i,j;int *p[3];p[0]=&a[0][0];printf("a\t\ta[0]\t\tb\t\t*p[0]\n");printf("%p\t%p\t%p\t%d\t\n",a,a[0],b,*p[0] );printf("arrays\tPointer\tPointer to the arrays:\n");for (i = 0; i <3; i++){for (j = 0; j < 3; j++){printf("%d\t%d\t%d\n",a[i][j],*(b+3*i+j),*(*(c+i)+j));}}return 0;
}

输出结果为:

用指针来表示二维数组的方法相关推荐

  1. C语言学习之有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值

    有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值. int main(){int a[3][4];int i,j,*p;//p是 int *型指针变量printf("请 ...

  2. 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...

    例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...

  3. 二维数组和指针(包含交换二维数组行列)

    有必要对a[i]的性质作进一步说明.a[i]从形式上看是a数组中的第i个元素.如果a是一维数组名,则a[i]代表a数组第i个元素所占的内存单元的内容.a[i]是有物理地址的,是占内存单元的.但如果a是 ...

  4. 二维数组更改vue_使用vue中的v-for遍历二维数组的方法

    如下所示: {{itemss}} 其中,data数据为: this.data = [ [ { type: '', name: '资产', start: '期末余额', end: '期初余额' }, { ...

  5. php 二维数组根据键值合并二维数组_php数组实现根据某个键值将相同键值合并生成新二维数组的方法详解...

    这篇文章主要介绍了php数组实现根据某个键值将相同键值合并生成新二维数组的方法,涉及php数组的遍历.赋值相关运算技巧,需要的朋友可以参考下 本文实例讲述了php数组实现根据某个键值将相同键值合并生成 ...

  6. php 多个一维数组合拼成二维数组的方法

    在开发过程中,需要整理数据,其中比较多操作是把各种数据整合到一组数据中.本文提供将多个一维数组合拼成二维数组的方法,提供完成代码及演示. 合拼方法代码如下,因需要使用函数可变参数,因此需要php版本5 ...

  7. java二维数组的创建,java二维数组创建方法

    java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...

  8. php 判断键值重复合并,php数组实现根据某个键值将相同键值合并生成新二维数组的方法...

    本文实例讲述了php数组实现根据某个键值将相同键值合并生成新二维数组的方法.分享给大家供大家参考,具体如下: 源数据: $infos = array( array( a => 36, b =&g ...

  9. 【C#】C#二维数组定义方法

    文章目录 C#二维数组定义方法 C#二维数组定义方法 C#项目中,可参考如下方式定义二维数组: string[] b= new string[10]; string[][] a= new string ...

最新文章

  1. 第18章:MYSQL分区
  2. 【Spark】Spark基础练习题(一)
  3. Hadoop控制输出文件命名
  4. Looping over the databases on a server
  5. Tomcat学习笔记02【Tomcat部署项目】
  6. sql执行有时候快有时候慢_如何让你的 SQL 执行的飞起?
  7. 遍历指定目录下的图片文件 显示在gridview 并添加点击事件
  8. 最新iOS面试必看题视频教程(附大神简历要素)
  9. 最小公倍数 [最小公约数的拓展]
  10. java Exception 处理汇总
  11. 局域网联通公网小部分知识点
  12. 中文地址翻译成英文实例
  13. 《再贵也能卖到翻》 博客思听 2009年3月
  14. 在拉勾网对职位的数据爬取与分析
  15. 被遗忘权_HTML:前5个被遗忘的元素
  16. 计算机硕士毕业面试题,计算机研究生面试自我介绍
  17. 人生苦短,用Python爬取微博大V
  18. logback-spring.xml配置详解
  19. ESP8266模块三种低功耗睡眠模式
  20. Unity dotween YoYo循环

热门文章

  1. mysql自动编号步进值_MySQL-自动编号
  2. 七十二、Vuex实现双父组件数据共享、localStorage、mapActions和keep-alive
  3. 四十一、深入Java中的 File类
  4. 额外篇 | basemap(上)
  5. CVPR 2022 | 华南理工提出VISTA:双跨视角空间注意力机制实现3D目标检测SOTA
  6. 复旦大学邱锡鹏教授团队:Transformer最新综述
  7. 公开课 | 如何轻松上手华为最新开源框架MindSpore?
  8. 西安电子科技大学第16届程序设计竞赛 E题
  9. 用python写名字代码_用python编写一个批量修改文件名的小程序
  10. Eureka出现Root name ‘timestamp‘ does not match expected (‘instance‘) for type xxx的错误,如何解决?