程序设计课件-指针.pptVIP

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、通过指针访问字符串 1、字符串结构的分析 设有数组定义为:char s[]=“abcde”; 则s是一个字符数组,它里面存放的是一个字符串。它在内存中占用6个字节,但长度为5。其结构为: ‘\0’ ‘e’ ‘d’ ‘c’ ‘b’ ‘a’ s s[0] s[1] s[2] s[3] s[4] s[5] 结束标志 指针与字符串 字符串还可以定义为:char *s=“abcde”; 它在内存中占用6个字节,长度为5。 其结构为: 指针与字符串 ‘\0’ ‘e’ ‘d’ ‘c’ ‘b’ ‘a’ s s[0] s[1] s[2] s[3] s[4] s[5] 结束标志 2、用字符数组与用指针使用字符串的比较 定义及初始化 char s[]=“abcde”; char *p=“abcde”; 赋值 char s[6]; char *p; s=“abcde”; p=“abcde”; strcpy(s, “abcde”); strcpy(p, “abcde”); 使用 s不能自加/减 p可以自加/减 指针与字符串 注意: char s[]=“abc”;与char s[]={‘a’,’b’,’c’};的区别 (2) 指针法 main() { char a[]=“Hello,world!”; char b[20]; char *pa,*pb; for (pa=a,pb=b;*pa!=‘\0’;pa++,pb++) *pb=*pa; *pb=‘\0’; printf(“%s\n”,b); } 该功能相当于:strcpy(b,a); 指针与字符串 下标法 main() { char a[]=“Hello,world!”; char b[20]; int i; for (i=0;a[i]!=‘\0’;i++) b[i]=a[i]; b[i]=‘\0’; printf(“%s\n”,b); } 将字符数组a中的字符串拷贝到字符数组b中 二、字符串指针作函数参数 1、函数的定义形式 char func(char a[], char b[]) { 函数体;} 也可以写为: char func(char *a, char *b) { 函数体;} 指针与字符串 void mystrcpy(char *to, char *from); main( ) { char ca[20], *cp=“Hello,world!”; mystrcpy(ca,cp); printf(“%s”,ca); } 设计一函数,实现与标准函数strcpy类似的功能。 void mystrcpy(char *to, char *from) { while (*from!=‘\0’) { *to=*from; to++; from++; } *to=‘\0’; } 思考:调用 mystrcpy(ca,cp+2); 结果如何? 指针与多维数组 数组是具有相同“数据类型”的数据的顺序集合,而数组本身也是C语言的一种数据类型,同样可以作为数组的元素类型。当一个一维数组的元素类型为数组时,便构成了多维数组。 熟记下面两组等价式: x[i] ? *(x+i) x[i] ? x+i 一、通过指针访问多维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址,也就是数组中第1 个元素(也是第一行)的首地址,它是一个地址常量,其值由系统在编译时确定,程序运行期间不能改变。 该二维数组可以理解为:它是一个一维数组,含有3个元素,每个元素又是一个一维数组,该一维数组含有4个元素,每个元素是int类型。 指针与多维数组 二维数组的逻辑结构图如下: a[0][3] a[0][2] a[0][1] a[0][0] a[1][3] a[1][2] a[1][1] a[1][0] a[2][3] a[2][2] a[2][1] a[2][0] a[0] a[1] a[2] a+0 a+2 a+1 指针与多维数组 指针与多维数组 2、指向二维数组中一行的指针变量 (1)格式:类型名 (*指针变量名)[长度

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档