C语言编程 第8章 指针.ppt

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

例如: char *p1; int a=2; void *p2; p2=a; p1=(char *)p2; 强制类型转换 void指针变量定义 同样,可用 p2=(void *)p1; 将p1的值转换成void 指针类型。 可以将一个函数定义为void 指针类型。表示该函数返回的是一个地址,它指向空类型,如需要引用此地址,也需要根据情况进行类型转换。 如, 库函数:void *malloc(unsigned size); 功能:分配size字节的存储区。 函数调用例: char *p; p=(char *)malloc(60); 分配60字节的存储区,并返回该内存区的地址,并赋值给p 。 void sort(char *ps[ ],int n); #define N 5 main() { char *ps[100],i; for(i=0;iN;i++) ps[i]=(char*)malloc(60); for(i=0;iN;i++) gets(ps[i]); sort(ps,N); for(i=0;iN;i++) puts(ps[i]); } void sort(char *ps[],int n) { int i, k; char *p,s[100]; for(i=0;in-1;i++) for(k=i+1;kn;k++) if(strcmp(ps[i],ps[k])0) { p=ps[i]; ps[i]=ps[k]; ps[k]=p; } } 例:用指针数组指向动态内存,进行字符串的排序。 3. 指针数组作main函数的形参 main函数是由系统调用的,可以有参数。 可执行文件名 参数1 参数2 …… 参数n 实参是和命令一起给出的,也就是在DOS提示符下,输入本程序的可执行文件名和需要传给main函数的参数,命令行的一般形式为: main函数实参: 带参数的main函数的原型是: main( int argc, char *argv[ ]) ; 命令行参数(包括可执行文件名)的数目n+1 指针数组,各元素分别指向命令行中的各参数(包括可执行文件名),即字符串的首址 例:若以下面程序编译后生成可执行程序 file.exe, 在DOS提示符下按下述形式执行程序: file China(参数1) Bejing (参数1) Shenyang (参数1) 写出程序运行结果。 #include stdio.h main(int argc, char *argv[ ]) { while(--argc0) printf(“%s\n”, argv[argc]) ; } 运行结果: Shenyang Bejing China 三、指向指针的指针变量  指向指针的指针变量(也称多级指针)只能存放指针变量的地址。 定义形式:  类型标识符 **指针变量名; 例如:int **q, *p, i=5;    p=i; q=p; 5 i 2000 2000 p 4000 q 4000 注意:要使用一个多级指针指向目标值,必须连续使用指针运算符“*”。 例如:上例中**q就是i的值。 含意:使指针变量p指向i,指针变量q指向p。 main() { int i; char *ptr[] = {Pascal,Basic,Fortran, Java,Visual C}; char **p; p = ptr; for (i=0; i5; i++) { printf(%s\n, *p); p++; } } 例 利用指向指针的指针输出多个字符串 ptr指针数组 字符串 Pascal Basic Fortran Java Visual C ptr[0] ptr[1] ptr[2] ptr[3] ptr[4] p p++ p++ p++ p++ §8.8 指针的数据类型小结 定 义 含 义 int *p ; p为指向整型数据的指针变量 int *p

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档