ch4 数组和指针.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch4 数组和指针

4.1 数组 4.2 指针 4.3 指针与数组 4.4 对指针使用const限定符 4.5 指向指针的指针 4.6 指针函数 4.7 查找算法 4.8 易犯错误 数组 数组 数组名,维数,下标,下标变量,数组元素 int a[10]; float b[3][4]; (4)数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。 (5)数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。 数组元素的引用 引用形式: 数组名[下标表达式] 1.“下标表达式”可以是任何非负整型数据,取值范围是0~(元素个数-1)。 2.1个数组元素,实质上就是1个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。 3.在C语言中,数值数组作为1个整体,不能参加数据运算,只能对单个的元素进行处理。 数组元素的初始化 格式: 数据类型 数组名[常量表达式]={初值表} (1)如果对数组的全部元素赋以初值,定义时可以不指定数组长度(系统根据初值个数自动确定)。如果被定义数组的长度,与初值个数不同,则数组长度不能省略。 int a[ ]={0,1,2,3,4,5,6,7,8,9}; (2)“初值表”中的初值个数,可以少于元素个数,即允许只给部分元素赋初值。 int fib[20]={0,1}; 多维数组 二维数组 2维数组的定义 2维数组元素的引用 2维数组元素的初始化 2维数组应用举例 定义: int a[3][4], b[5][3]; 说明: 1.数组元素在内存中的排列顺序为“按行存放”,即先顺序存放第一行的元素,再存放第二行,以此类推。 2. 设有一个m*n的数组x,则第i行第j列的元素x[i][j]在数组中的位置为:i*n+j(注意:行号、列号均从0开始计数)。 3.可以把2维数组看作是一种特殊的1维数组:它的元素又是一个1维数组。 例如,对x[3][2],可以把x看作是一个1维数组,它有3个元素:x[0]、x[1]、x[2],每个元素又是一个包含2个元素的1维数组。即把x[0]、x[1]、x[2]看作是3个1维数组的名字。 2维数组元素的引用 引用形式为: 数组名[行下标表达式][列下标表达式] 2维数组元素的存储结构与初始化 1.按行赋初值 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 2.按2维数组在内存中的排列顺序给各元素赋初值 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 3.给部分元素赋值 4.如果对全部元素都赋初值,则“行数”可以省略。注意:只能省略“行数”。 字符串数组 字符数组的定义、引用、初始化 指针 (1)指针──即地址 一个变量的地址称为该变量的指针。通过变量的指针能够找到该变量。 (2)指针变量──专门用于存储其它变量地址的变量 (3)为表示指针变量和它指向的变量之间的关系,用指针运算符“*”表示。 int num, *p; num=3; /*将3直接赋给变量num*/ p=num; /*使p指向num */ *p=3; /*将3赋给指针变量p所指向的变量*/ 综合例题 指针与数组 指向一维数组的指针及操作 1.数组的指针──数组在内存中的起始地址,数组元素的指针──数组元素在内存中的起始地址。 2.指向数组的指针变量的定义 例如, int array[10], *pointer; pointer=array; (或array[0]); 注意:数组名代表数组在内存中的起始地址(与第1个元素的地址相同),所以可以用数组名给指针变量赋值。 通过指针变量使用数组元素 数组元素的引用,既可用下标法a[i],也可用指针法。使用下标法,直观;而使用指针法,能使目标程序占用内存少、运行速度快。 引用数组元素 a[i] *(a+i) *(p+i) p[i] 例 输出数组元素。 例 输出数组元素。 a[i]、*(a+i)、 *(p+i)、 p[i] 指针与二维数组 指针数组处理二维数组 数组下标法: a[i][j] 指针表示法:*(*(a+i)+j) 行数组下标法: * (a[i]+j) 列数组下标法: (*(a+i))[j] 例 输出二维数组元素。 指针与字符串 字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串。 字符串的表示与引用 在C语言中,既可以用字符数组表示字符串,也可用字符指针变量来表示;

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档