计算机程序设计 指针.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
char str[14]; scanf(“%s”,str); 是可以的。但如果写成如下形式: char *a; scanf(“%s”,a); 是非常危险的。因为指针变量没有确定的地址而指向程序区或其它数据区,从而会造成系统“冲突”。应写成如下形式: char *a, str[10]; a=str; scanf(“%s”,a); ? 数组在编译时被分配内存单元,有确定的地址。而指针变量必须赋给一个确定的地址值,否则,在程序运行时会发生意想不到的后果。如: main( ) { char *a=“I love China!”; a=a+7; printf(“%s”,a); } 运行结果如下: China! 下面的写法是错误的: char str[ ]={“I love China!”}; str=str +7; printf(“%s”,str); ? 若定义一个指针变量使它指向一个字符串后,可以用下标形式引用指针变量所指字符串中的字符。 ? 指针变量的地址值可以改变,而数组名的地址值不能改变。如: 例3.6 main( ) { char *a=“I love China.”; int i=5; printf(“%c\n”, a[i] ); for (i=7; a[i]!=‘\0’; i++) printf(“%c”, a[i] ); } 运行结果如下: e China. ? 可用指针变量指向一个格式字符串来代替printf函数中的格式字符串。也可以在定义字符数组赋初值时赋予一个格式字符串代替printf函数中的格式字符串。如: char *format; format=“a=%d, b=%f \n”; printf(format, a, b); 它相当于: printf(“a=%d, b=%f \n”, a, b); 例3.7 顺读和倒读都一样的字符串称为“回文”,如:LEVEL。试编写一个判断输入的字符串是否为回文的程序。 #include “stdio.h” #include “string.h” main( ) { char s[81], *pi, *pj; int i, j, n; gets(s); n=strlen(s); pi=s; pj=s+n-1; /? pi和pj分别指向字符串首末 ?/ while (*pi==‘ ’) pi++; /? 跳过输入时的前导空格 ?/ while (*pj==‘ ’) pj--; /? 跳过输入时的尾随空格 ?/ while ((pipj)(*pi==*pj)) {pi++; pj--;} if ( pipj) printf(“NO\n”); else printf(“YES\n”); } 4、 指针数组 char **p ; int i; for (i=0; i5; i+ +) {p= name+i; printf(“%s\n”,*p); } } 定义形式: 类型标识符 *数组名[数组长度] 例如:int *p[4]; 定义了有4个元素的指针数组,每个数组元素都指向一个整型变量。 例8.8 main( ) {static char *name[ ]={“Follow me”, “BASIC”, “Great Wall”, “FORTRAN”, “Computer design”}; 指向指针的指针 作用:将一个变量的地址传送至另一个函数中 例3.9 3.4 指针变量作为函数参数 用指针变量作参数调用函数能获得多个值。此例中a和b的值交换,而s1和s2的值不变。 3.5 返回指针值的函数 (指针函数) 定义形式: 类型标识符 *函数名(参数表) 例如:int *fa(x, y); 注意: 指针函数 VS 指向函数的指针变量 例: int *a(x,y); int (*a)( ); a为整型指针函数 a为指向函数的指针变量 3.6 指向函数的指针 一、 用函数指针变量调用函数 例3.10 求两数中的较大者。 main( ) { int max( ); int (*p)( ); /? 定义p是指向函数的指针变量 ?/ int a, b, c; p=max; scanf(“%d, %d”,a,

文档评论(0)

企管文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档