C程序设计英文课件:CHAPTE 5 Pointer and Arrays.ppt

C程序设计英文课件:CHAPTE 5 Pointer and Arrays.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设p和q是指向同一数组不同成员的指针 == , != , , , =, = pq it’s true if p points to an earlier member of array than q does, but first p and q must point to same array. 表示p指向的元素在q指向元素的前面 5.4 Address Arithmetic q-p /* pq, p and q point to same array*/ a[0] a[1] a[2] a[3] a[4] a: a[i] a[n-3] a[n-2] a[n-1] p q q-p 5.4 Address Arithmetic int strlen(char *s) { char *p=s; while(*p!=‘\0’) p++; return p-s; } 5.4 Address Arithmetic h e l l o , w o r l d \0 5.5 Character Pointers and Functions main() { char str[]=“hello,world”; printf(“%s\n”,str); } str Str[0] Str[1] Str[12] syntax char *pointer_name 5.5 Character Pointers and Functions main() { char *str=“hello,world”; printf(“%s\n”,str); } h e l l o , w o r l d \0 str main() { char *str str=“hello,world”; printf(“%s\n”,str); } void strcpy(char *s,char *t) { int i; i=0; while(t[i]!=‘\0’) { s[i]=t[i]; i++; } s[i]=‘\0’; } void strcpy(char *s,char *t) { while(*t!=‘\0’) { s++; t++; } *s[i]=‘\0’; } /* array subscript version*/ /* pointer version 1*/ 5.5 Character Pointers and Functions #includestdio.h main() {char a[]=“hello”; char b[]=“hello world”; strcpy(a,b); } 5.5 Character Pointers and Functions #includestdio.h main() {char a[]=“hello”; char b[]=“hello world”; char *p1=a,*p2=b; strcpy(p1,p2); } Example:输入a和b两个整数,按先大后小的顺序输出。 main() { int *p1,*p2,*p,a,b; scanf(%d,%d,a,b); p1=a;p2=b; if(ab) {p=p1;p1=p2;p2=p;} printf(\na=%d,b=%d\n,a,b); printf(max=%d,min=%d\n,*p1, *p2); } 5.1 Pointers and Addresses a 5 b 19 a b p1 p2 b 5 a 19 a b p2 p1 output: a=5,b=19 max=19,min=5 exchange(int *q1,int *q2,int *q3) { if(*q1*q2) swap(q1,q2); if(*q1*q3) swap(q1,q3); if(*q2*q3) swap(q2,q3); } Summarization: 1)指针运算符 取地址运算符:单目运算符;其结合性为自右至左,其功能是取变量的地址。 指针运算符*:单目运算符;其结合性为自右至左;用来表示指针变量所指的变量;在*运算符之后跟的变量必须是指针变量。 2)赋值运算 把一个变量的地址赋予指向相同数据类型的指针变量。 例如:int a,*pa;pa=a;

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档