网站大量收购独家精品文档,联系QQ:2885784924

第12讲指针(下)详解.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 12.7 返回指针的函数 前面介绍了return语句只能返回一个值,如何返回多个数据?通过返回指针来实现 返回指针函数定义形式:类型标识符 *函数名(参数表) 例.int *a(int x, int y);//声明一个函数名为a,其返回值类型是“指向整型的指针”,形式参数为int x,y 例.有若干学生成绩(每个学生四门课程),要求用户在输入学生序号(从0开始)后,能输出该学生的全部成绩 分析:设计一个指针变量pointer指向一个学生的四门成绩 ,float (*pointer)[4]; §12.7 返回指针的函数 指针变量使用小结 有关指针变量的类型 定义 含义 int i; 定义整型变量i int *p; p是指向整型数据的指针变量 int a[n]; 定义数组a,元素类型为int,元素个数是n int *p[n]; p是指针数组,包含n个整型指针变量 int (*p)[n];p是指向数组的行指针,数组每行有n个整型数 int f(); f是函数,返回值是int int *p(); p是函数,返回值是指针,该指针指向整型数据 int (*p)(); p是函数指针变量,指向int函数的入口地址。 int **p; p是指针变量,指向一个指向整型数据的指针 指针变量使用小结 指针变量运算小结 1、指针变量加/减运算 p++、p--、p+i、p-i、p+=i、p-=i 加1表示指向下一个数据。 2、指针变量相减。当p1、p2指向同一个数组的元素,指针相假p2-p1等于p1、p2间的元素个数。 注意:指针相加无意义 指针变量使用小结 3、指针变量赋值  p = a; 变量a的地址赋给p,即指针p指向a  p = array; 数组array首地址赋给p  p = array[i]; 数组元素array[i]的地址赋给p  p = max; 函数max的入口地址赋给p  p1 = p2; 指针p2的值赋给指针p1,即p1、p2所指的数据相同 注意:“野指针”是指向“垃圾”内存(不可用内存)的指针 指针变量使用小结 4、空指针(null pointer ):不指向任何变量(对象)和函数 #define NULL 0 char *p=NULL; 5、空类型(通用)指针(void *):基类型未确定的指针 void *p,表示p是空类型指针,它可以指向任何数据类型。例如:void *malloc( size_t size ); int *p; p=(int*)malloc(sizeof(int)*10); 空类型指针与其他类型指针之间赋值时,应进行强制类型转换 例、char *p1;   void *p2; p1 = (char *)p2;   p2 = (void *)p1; 第12次课后练习 本次练习必做2道题,第14周末提交源程序和运行结果 1.定义一个指向字符串的指针数组,用一个函数完成N个不等长字符串的输入,使得指针数组元素依次指向每一个输入的字符串。设计一个完成N个字符串按升序的排序函数(在排序过程中,要求只交换指向字符串的指针,不交换支付串)。在主函数中实现对排序后的字符串的输出。假设已知字符串的最大为80字节;根据实际输入的字符串长度来分配存储空间。 课后练习 2.编写程序,从键盘读入10个整数,将其存在一个长度为10的一维数组a[]中。然后输出该组数据从小到大的排序结果以及在原数组中的下标。 如:输入 26 14 57 33 41 12 96 8 67 3 输出: 3 8 12 14 26 33 41 57 67 96 9 7 5 1 0 3 4 2 8 6 要求: 排序算法自选;假设输入数据中无重复数据; 程序过程中不能改写数组a的内容,也不能新开辟整数数组存放排序后的结果。 提示: 可以开辟一个整型指针的数组:int * pa[10]; 将原来针对数组a[10]的排序过程,改为针对数组pa[10]进行; 最后按照pa[10]的结果打印排序结果,和在原来数组a[10]中的位置。 1.编写程序,求一个N×N方阵的第i对角线的元素之和。其中,方阵的第i对角线定义如下: 第0对角线 第1对角线 第2对角线 要求: 方阵大小固定为10×10; 方阵元素如下: 使用指针编程。 课后练习选做题 * * 第12讲 指针(下) 参考教材6.4-6.8 希望大家能从指针学习中拥有“痛并快”的感觉,同时通过“巅峰体验”后,得出“会当凌绝顶,一览众山小”的感慨 本讲主要内容 二维数组的指针及其指针变量 字符数组的指针及其指针变量 指针数组 指向指针变量的指针变量 函数指针和指向函数的指针变量 返

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档