C语言二维数组与指针.ppt

好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 真题分析,第一节 二维数组的定义,定义形式 数据类型 数组名常量表达式1常量表达式2 数组元素的存放顺序 内存是一维的 按行序优先,如int a32;,int a32,a01,a10,a11,a20,a21,a00,a00 a01 a10 a11 a20 a21,例 int a34;二维数组的理解特殊的一维数组,每个元素ai各包含4个元素 分别为ai0, ai1, ai2, ai3二维数组a由3个元素组成 a0、a1、a2,a01,a02,a03,a10,a11,a00,a13,a20,a21,a22,a23,a12,a0,a1,a2,分行全部初始化,第二节 二维数组的初始化及引用,第二节 二维数组的初始化及引用,分行部分初始化,分行初始化,省略第一维的大小,第二节 二维数组的初始化及引用,按元素排列顺序初始化,第二节 二维数组的初始化及引用,按元素排列顺序部分初始化,第二节 二维数组的初始化及引用,按元素排列顺序初始化,省略第一维大小,第二节 二维数组的初始化及引用,引用形式 数组名下标下标,第二节 二维数组的初始化及引用,如int a23; 可以引用的数组元素有 a00, a01,a02, a10,a11, a12;,二维数组的地址,对于一维数组 (1)数组名array表示数组的首地址, 即array0的地址; (2)数组名array是地址常量 (3)arrayi是元素arrayi的地址 (4)arrayi *arrayi,第三节 二维数组和指针,对于二维数组 (1)a是数组名。 包含三个元素 a0,a1,a2 (2)每个元素ai又是一个一维数组,包含4个元素 ai0、 ai1、 ai2、 ai3,int a34;,二维数组的地址,对二维数组 int a34,有 a-二维数组的首地址,即第0行的首地址 ai-第i行的首地址 ai *ai第i行第0列元素的地址 aij *aij -第i行第j列元素的地址 *aij **aij aij,ai ai,表示第i行首地址,指向行 ai *ai ai0,表示第i行第0列元素地址,指向列2000,2004,2010,2014,2020,2024,a,a1,a2,二维数组的地址,二维数组元素表示形式 (1)a12 (2)*a12 (3)**a12 (4)*a001*42,首元素地址表示 1 a1 2 a10 3 a1 4 *a1行指针列指针,int a34;,元素地址表示 1 a12 2 a12 3 *a12 4a001*42,二维数组的地址,二维数组的地址,指向二维数组元素的指针变量,例 指向二维数组元素的指针变量,main static int a341,3,5,7,9,11,13,15,17,19,21,23; int *p; forpa0;pa012;p ifp-a040 printf“n“; printf“4d “,*p; ,通过指针数组来引用二维数组元素,若有以下定义 int *p3,a34,i,j;,表示p是一个数组名,该数组类型为指针类型,即数组的3个元素均为指针类型的数据。注意 int *p4与int *p4代表不同的含义。,指针数组用法举例,main static int a341,3,5,7,9,11,13,15,17,19,21,23; int i,j, *p3; fori0;i3;i piai; forj0;j4;j printf“d “,*pij; printf“n“; , pijp0*a; p0,* aij,aij,定义形式 数据类型 *指针名数组大小 如 int *p4;, 不能少 int *p4与int *p4不同,p的值是一维数组的 首地址,p是行指针,可让p指向二维数组的某一行 如int a34, *p4a;,一维数组指针变量维数和 二维数组列数必须相同,通过指向一维数组的指针变量来引用数组元素,一维数组指针变量维数和 二维数组列数必须相同a00,a01,a10,a11,a20,a21a02,a03,a12,a13,a22,a23p,p1,p2p01或 *p1p12或 *p12,**p1或 *p1,**p12,int a34, *p4a;,通过指向一维数组的指针变量来引用数组元素,int a34, *p4; pa;main static int a341,3,5,7,9,11,13,15,17,19,21,23; int i,j,*p4; forpa,i0;i3;i,p forj0;j4;j printf“d “,**pj; printf“n“; a00,a01,a10,a11,a20,a21a02,a03,a12,a13,a22,a23ppp, **aj, p0j,通过指向一维数组的指针变量来引用数组元素,若 int a34, *p14a;,第四节 二维数组名和指针数组作为实参,指针的数据类型小结,第五节 二维数组程序举例,将二维数组行列元素互换,存到另一个数组中,1a00,b00 2a01,b10 3a02,b20 4a10,b01 5a11,b11 6a12,b21,真题分析,2008年4月 (24)以下错误的定义语句是( )。 A)int x 30,1,1,2,3; B)int x431,2,3,1,2,3,1,2,3,1,2,3; C)int x4 1,2,3,1,2,3,1,2,3,1,2,3; D)int x 31,2,3,4;,答案C,真题分析,2008年4月 (26)若有定义int a23;, 以下选项中对a 数组元素正确引用的是( )。 A)a21 B)a23 C)a 03 D)a121,答案D,真题分析,2008年9月 (35)有以下程序 include define N 4 void funint a N, int b int i; fori0; iN; i biaii; main int x N1,2,3,4,5,6,7,8,9,10,yN, i; funx,y; for i0; iN; i printf“d,“, yi; printf“n“; 程序的运行结果是( )。 A)l,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10答案B,2 3 0 0 0 0 6 7 8 9 10 0 0,真题分析,2008年9月 (36)有以下程序 include int funint *s4,int n, int k int m, i; ms0k; foril; im msik; return m; main int a441,2,3,4,11,12,13,14,2l,22,23,24,31,32,33,34; printf“dn“, funa,4,0; 程序的运行结果是( )。 A)4 B)34 C)31 D)32,答案C,2 3 4 11 12 13 14 21 22 23 24 31 32 33 34,真题分析,2008年9月 (12)以下程序按下面指定的数据给x 数组的下三角置数,并按如下形式输出,请填空。 4 3 7 2 6 9 1 5 8 10,答案 【12】i 【13】 n,include main int x44,n0,i,j; forj0;jj; 【12】 n;xij 【13】; fori0;i4;i forj0;ji;j printf“3 d“,xij; printf“n“;,知识点分析,题型上机、笔试都有。 重点掌握 二维数组的定义、元素的引用及初始化的方法 用指针表示对二维数组元素及其地址的方法 数组名做函数的参数,

c语言二维数组 ppt,C语言二维数组与指针.ppt相关推荐

  1. C语言从青铜到王者——数组详解总结【一维数组、二维数组、字符数组、数组实例】

    所谓数组,是指将那些具有相同类型的.数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式.数组属于一种构造类型,其中的变量被称为数组的元素.数组元素的类型可以是基本数据类型,也可以是特殊类型 ...

  2. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

    1. 题目 请编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中.二 ...

  3. C语言 二维数组遍历 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  4. (c语言)编程输出二维数组中元素的最大值,要求用指针实现。

    (c语言)编程输出二维数组中元素的最大值,要求用指针实现. #include<stdio.h> #include<stdlib.h> #define N 6 //行数 #def ...

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

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

  6. 二维数组在c语言中的作用,C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  7. 二维动态数组空间分配 c语言,科学网—C语言中动态二维数组的使用和分配 - 王一哲的博文...

    好多年不用C语言了,最后一次使用还是读研的时候写矩量法的时候了,看见VS的界面总能想起当年读书的时候的各种错误,往事随风.本程序应人之约,首先得到一个随机的矩阵,之后通过将矩阵分解为几个小矩阵统计小矩 ...

  8. C语言编程>第七周 ⑧ 请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。

    例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中.二维数组中的数己在主函数中赋予. ...

  9. java二维数组扫雷,C语言二维数组实现扫雷游戏

    #include //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', '+','+','+','+' ...

最新文章

  1. spring mvc DispatcherServlet详解之一---处理请求深入解析(续)
  2. linux关闭开发者模式的命今,CentOS防火墙用命令行方式关闭的方式
  3. 谷歌 Pixel 4 人像模式拍照算法揭秘
  4. 【力扣】NO.1.两数之和
  5. java大数据组件HBase
  6. Servlet技术详解
  7. 啊哈C语言 第8章 游戏时间到了(第29讲)
  8. C++ 文件输入输出问题
  9. Java架构师—PDMan数据库建模工具使用
  10. no.8 python 和 Linux (笔记)
  11. App项目开发流程图解
  12. 致加西亚的信 谁动了我的奶酪
  13. WIFI-WPA破解
  14. 史上最全的常用开发工具类收集(持续更新中)
  15. javascript冷门吗_冷门JS技巧
  16. 【汇正财经】大盘低开回升
  17. python的实验报告大一心理_Python程序设计实验报告: 实验六
  18. 使用@Value取不到值,为null
  19. MAC终端连接服务器问题杂记
  20. 牛顿迭代法 简单入门

热门文章

  1. 太原理工大学ACM队简介(2018版)
  2. npm 包管理器的使用
  3. 分布式计算的基本概念
  4. Tricks(四十三)—— 逆序的方式访问一个 list
  5. 12c集群日志位置_关于Oracle 12c的集群监控(CHM)
  6. python sqlite3 带密码_Python实现ATM提款机系统
  7. python程序员工资-均薪3万?Python程序员就业各岗位薪资一览,你拖后腿了吗?...
  8. 下载python流程-Python编写win程序的操作流程
  9. python能做什么游戏-Python有做大型游戏的潜力吗?
  10. python读音有道-python爬虫之有道在线翻译