c语言数组数据用指针查找,c语言数组与指针_指针篇_2011.ppt
c语言数组与指针_指针篇_2011
指 针
6.2 指针的概念6.3 指针与数组6.4 字符串的指针6.5 指针数组和指向指针的指针;6.2.1 地址与指针的概念 ;指针的概念;内存地址;2、数组与地址 ;指针与指针变量 ;寻址; 指针变量的定义、初始化和引用 ;(二)、指针变量的引用方式 ;2、通过指针变量来引用所指向的变量;(三)、取地址运算符与指针运算符 ;&和*优先级别 ;例如,设有变量a、指针变量pa,且pa已经指向a。;例:用指针变量按从小到大的顺序输出三个整数。;6.3 指针与数组;指向一维数组的指针; 指向一维数组的指针变量的使用 ;● 当指针变量指向下标为i的数组元素时,引用数组元素的方 法如下:; 方法1,2引用数组元素的方法使用了“指针运算符”,称为“指针法”;方法3,4引用数组元素的方法使用了“下标运算符([])”称为“下标法”。;2、指向一维数组的指针变量的运算;指针变量-整数 “指针变量中的地址-整数*指针变量类型占 用单元数”对应的地址;指针变量-- “指针变量中的地址”对应的地址(因为是后缀 减1运算符),此后,指针变量将指向上一个 数组元素。;例如:设定义了整型数组a[10],整型指针变量pa,且执行了pa=a。假定数组a的首地址为2000。请看下列的表达式及其运算结果:;(2)指针变量和指针变量的减法运算; 当两个指针变量的值(地址值)满足关系运算时,结果为1(真)否则结果为0(假)。 例如,定义了数组a和同类型的指针变量p1、p2;使p1指向数组元素a[2];p2指向数组元素a[3]。下列关系表达式及其运算结果:;例:输入10个整数存入一维数组,从中查找某个整数(该数从键盘上读取),查到则输出其是第几个数,查不到则输出“Not Find!”。要求用指针法处理。;3、关于使用“指针法”处理一维数组元素的下标越界问题; 虽然C语言允许处理数组元素时下标可以越界,但在程序中要尽量避免。当出现下标越界的情况,如果你使用的是数组元素值,显然这个值不知为何值;如果你是将某个值存入该数组元素,结果将会破坏对应内存单元中原来的值,使得后面程序运行时,结果不正确,甚至出现预料不到的问题,而这样的错误很难查找。; 指向二维数组的指针变量的使用 ;例1:输入2行3列的矩阵元素后,存入二维数组。再按行列格式输出。;2、指针变量指向二维数组的首地址;(2)二维数组元素的引用方法。; 如果定义指针变量p并且指向数组a的首地址,则这些元素的地址和引用方法如下:;例2:重编例1,要求使用指向二维数组首地址的指针变量处理二维数组元素。;3、指针变量指向二维数组中某个一维数组; 然后再用初始化或赋值方式将该指针变量指向二维数组的首地址类型(* 指针变量)[m]=二维数组名 (初始化)指针变量=二维数组名 (赋值);使用这种指针变量,需要注意以下几点:;(2)二维数组元素的引用方法。;二维数组中的一维数组; 6.4 字符串的指针;1、如何将指针变量指向字符串常量; 可以用赋值方式使指针变量指向字符串常量,但是不允许将字符串常量赋值给字符型数组。例如,下列的程序段是错误的:;2. 指向存放字符串的字符数组的指针变量的使用;6.5 指针数组和指向指针的指针 ;[格式] [存储类型] 数据类型 * 指针数组名[长度]={初值};;(4)省略“存储类型”,默认为自动型(auto)。;2、指针数组元素的引用 ;例5:输入5个字符串存入一个二维数组中,然后定义一个指针数组,使其元素分别指向这5个字符串并输出。;3、多级指针的定义和应用 ;[说明];(3)定义时的“数据类型”可以选任何基本数据类型,也可以选 取以后介绍的其它数据类型。这个数据类型是它将要指向 的指针变量所指向的变量或数组的数据类型。; 当某个二级指针变量已指向某个一级指针变量,而这个一级指针变量已指向某个普通变量,则下列的引用格式都是正确的。;例6:输入5个字符,从中找出最大的字符并输出。要求用字符数组存放这5个字符,用指针数组元素分别指向这5个字符,再用一个二级指针变量指向这个指针数组。;课堂练习—指针应用程序设计例题;例2:求3×5整数矩阵中的最大元素、最小元素、所有元素的平均值。(要求用指向二维数组
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
