指针(4)_指针数组、多级指针、动态指针.ppt

指针(4)_指针数组、多级指针、动态指针.ppt

数组指针——以此类推;问题的提出;元素均为指针类型数据的数组,称为指针数组 定义形式为: 类型关键字 *数组名[数组长度]; 例如 char *pStr[5]; ;例: 二维字符数组;例:字符指针数组;例:字符串按字典顺序排序—二维数组编程;例:字符串按字典顺序排序—指针数组编程;命令行参数;例:演示命令行参数与main函数各形参之间的关系 ;指针型函数;例 求一维数组的最大值及其下标;五、 多级指针和动态指针;(1) 定义形式:数据类型 **指针名; 如 int *p, i=5,**pp; (2) 赋值 p=i;pp=p; (3)引用方法 pp的值 *pp的值 **pp的值;动态分配内存;2.动态指针 为什么要动态分配内存? 当事先不知道所需要处理的数据有多大时, 使用静态数组, 若数组开辟得太大, 则浪费内存资源(甚至可能不成功); 若开辟得太小, 又不能满足计算需要。采用动态分配内存的方法,使用完毕,再释放内存,以备其它程序使用。 C语言中提供了几个标准函数,以实现内存的分配和释放。;动态分配内存;动态数组;函数指针(选学);2.指向函数的指针变量 (1)定义格式 函数类型 (*指针变量)( ); 注意:“*指针变量”外的括号不能缺,否则成了返回指针值的函数。 例如,int (*fp)( ); /* fp为指向int函数的指针变量*/ (2)赋值 函数名代表该函数的入口地址。因此,可用函数 名给指向函数的指针变量赋值。 指向函数的指针变量=[]函数名; 注意:函数名后不能带括号和参数;函数名前的“”符号是可选的。 ;(3)调用格式 (*函数指针变量)([实参表]) 3.指向函数的指针变量作函数参数 指向函数的指针变量的常用用途之一,就是将函数指针 作参数,传递到其它函数。 函数名作实参时,因为要缺省括号和参数,造成编译器 无法判断它是一个变量还是一个函数,所以必须加以函数说 明。 注意:对指向函数的指针变量,诸如p+i、p++/p--等运算 是没有意义的。;函数指针应用举例;int dengyu(int x,int y) { return x==y; } int dayu(int x,int y) { return xy; } int xiaoyu(int x,int y) { return xy; } /*条件:大于给定值,并能被2整除的 …… */;指针的概念 指针是一种特殊的数据类型 指针的使用原则 永远要清楚指针变量存放的是什么,指向了什么 指针与数组之间的关系 理解一维数组与指针是理解二维数组与指针的基础 掌握二维数组在内存中的存放方式,是理解二维数组的行指针和列指针的关键 指针数组 指针函数 指针的应用 做函数参数,传地址调用 动态分配内存,实现动态数组,对于动态分配的内存,不要忘记在不使用时释放

文档评论(0)

1亿VIP精品文档

相关文档