ImageVerifierCode 换一换
格式:PPT , 页数:16 ,大小:225KB ,
资源ID:7966937      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7966937.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(指针数组的初始化.ppt)为本站会员(hskm5268)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

指针数组的初始化.ppt

1、指针数组赋值与初始化,char name59=“gain”,“much”,“stronger”, “point”,“bye”;,char *name5=“gain”,“much”,“stronger”, “point”,“bye”;,二维数组与指针数组区别:,二维数组存储空间固定字符指针数组相当于可变列长的二维数组,指针数组元素的作用相当于二维数组的行名 但指针数组中元素是指针变量二维数组的行名是地址常量,void main() void sort(char *name , int n);void print(char *name , int n);char *name =“Follow me

2、“,“BASIC“, “Great Wall“,“FORTRAN“,“Computer “;int n=5;sort(name, n);print(name, n); void sort(char *name , int n) char *temp;int i, j, k;for(i=0;i0) k=j;if(k!=i) temp=namei; namei=namek; namek=temp; ,i=0,例 对字符串排序(简单选择排序),例 对字符串排序(简单选择排序),void main() void sort(char *name , int n), print(char *name ,

3、int n);char *name =“Follow me“,“BASIC“, “Great Wall“, “FORTRAN“,“Computer “;int n=5;sort(name,n);print(name,n); void sort(char *name , int n) char *temp;int i, j, k;for(i=0;i0) k=j;if(k!=i) temp=namei; namei=namek; namek=temp; ,name0,name1,name2,name3,name4,name,Great Wall,FORTRAN,Computer,Follow me

4、,BASIC,i=1,例 对字符串排序(简单选择排序),void main() void sort(char *name , int n), print(char *name , int n);char *name =“Follow me“,“BASIC“, “Great Wall“, “FORTRAN“,“Computer “;int n=5;sort(name, n);print(name, n); void sort(char *name, int n) char *temp;int i, j, k;for(i=0;i0) k=j;if(k!=i) temp=namei; namei=n

5、amek; namek=temp; ,name0,name1,name2,name3,name4,name,Great Wall,FORTRAN,Computer,Follow me,BASIC,i=2,例 对字符串排序(简单选择排序),void main( ) void sort(char *name , int n), print(char *name , int n);char *name =“Follow me“,“BASIC“, “Great Wall“, “FORTRAN“,“Computer “;int n=5;sort(name, n);print(name, n); void

6、 sort(char *name ,int n) char *temp;int i, j, k;for(i=0;i0) k=j;if(k!=i) temp=namei; namei=namek; namek=temp; ,name0,name1,name2,name3,name4,name,Great Wall,FORTRAN,Computer,Follow me,BASIC,i=3,例 对字符串排序(简单选择排序),void main() void sort(char *name , int n);void print(char *name , int n);char *name =“Fol

7、low me“,“BASIC“, “Great Wall“, “FORTRAN“,“Computer “;int n=5;sort(name, n);print(name, n); void sort(char *name , int n) char *temp;int i, j, k;for(i=0; i0) k=j;if(k!=i) temp=namei; namei=namek; namek=temp; ,name0,name1,name2,name3,name4,name,Great Wall,FORTRAN,Computer,Follow me,BASIC,#include “str

8、ing.h“ void main( ) void sort (char *name , int n );void print (char *name , int n );static char *name = “CHINA“, “AMERICA“,“AUSTRALIA“, “FRANCE“, “GERMAN “ ;int n=5;sort(name, n);print(name, n); ,【例】输入5个国名并按字母顺序排列后输出。,void sort(char *name , int n) char *pt;int i, j, k;for(i=0; i0) k=j;if( k!=i ) pt

9、=namei;namei=namek;namek=pt; void print(char *name , int n) int i;for (i=0; in; i+) printf(“%sn“, namei); ,说明:在以前的例子中采用了普通的排序方法,逐个比较之后交换字符串的位置。交换字符串的物理位置是通过字符串复制函数完成的。反复的交换将使程序执行的速度很慢,同时由于各字符串(国名)的长度不同,又增加了存储管理的负担。用指针数组能很好地解决这些问题。把所有的字符串存放在一个数组中,把这些字符数组的首地址放在一个指针数组中,当需要交换两个字符串时,只须交换指针数组相应两元素的内容(地址)即

10、可,而不必交换字符串本身。,程序定义了两个函数,一个名为 sort完成排序,其形参为指针数组 name,即为待排序的各字符串数组的指针。形参n为字符串的个数。另一个函数名为 print,用于排序后字符串的输出,其形参与 sort的形参相同。主函数main中,定义了指针数组name 并作了初始化赋值。然后分别调用 sort函数和 print函数完成排序和输出。值得说明的是在sort函数中,对两个字符串比较,采用了strcmp函数,strcmp函数允许参与比较的字符串以指针方式出现。namek 和namej 均为指针,因此是合法的。字符串比较后需要交换时,只交换指针数组元素的值,而不交换具体的字符

11、串,这样将大大减少时间的开销,提高了运行效率。,第八节 有关指针的数据类型和指针运算的小结,有关指针的数据类型的小结,二、指针运算小结1、指针变量加/减运算p+、p -、p+i、p-i、p+=i、p-=i加1表示指向下一个数据。,一个指针变量加(减)一个整数并不是简单地将原值加(减)一个整数, 而是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数加(减)。,2、指针变量赋值 p = 指针p2的值赋给指针p1,即p1、p2所指的数据相同,注意:1)不能把一个整型变量赋给指针变量。如:p = 1000;只能将变量已分配的地址赋给指针变量。2)不能把指针变量的值赋给一个整型变量。

12、如:int i; i = p;3、指针变量可以有空值,即该指针不指向任何变量表示如下:p = NULL; /*p不指向任何数据*/在stdio.h中,NULL被定义为0:#define NULL 0,思考:能够赋给指针的唯一整数是,0,习惯上,不使用 p = 0,而使用 p = NULL。 指针变量p可以与NULL作比较,例: if (p = NULL) . 注意:空指针不指向任何数据,与p未赋值不同。当p未赋值时,其值是不确定的,而空指针的值是确定数0。4、指针变量相减。 当p1、p2指向同一个数组的元素,指针相假p2-p1等于p1、p2间的元素个数。 注意:指针相加无意义。,5、两个指针的比较 当p1、p2指向同一个数组的元素时,可以比较,如:p1 p2;若p1、p2不是指向同一个数组的元素,比较无意义。,三、空类型指针 void void *p,表示p是空类型指针,不指定它是指向哪一种类型数据的,即它可以指向任何数据类型。空类型指针与其他类型指针之间赋值时,应进行强制类型转换。例如: char *p1; void *p2;p1 = (char *)p2; p2 = (void *)p1;,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报