资源描述:
《3.指针与字符串》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、fun1(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}fun2(int*a,intb){intc,c=*a;*a=b;b=c;}voidmain(){inta,b,c,d;a=30;b=50;fun1(a,b,&c,&d);fun2(&c,d);printf(“%d,%d”,c,d);}请写出输出结果:指针与字符串字符串表示形式用字符数组实现例main(){charstring[]=“IloveChina!”;printf(“%s”,string);printf(“%s”,string+7);}
2、IloveChistring[0]string[1]string[2]string[3]string[4]string[5]string[6]string[7]string[8]string[9]stringstring[10]string[11]string[12]string[13]n!a 用字符指针实现例main(){char*string=“IloveChina!”;printf(“%s”,string);string+=7;while(*string){putchar(string[0]);string++;}}IloveChist
3、ringn!a 字符指针初始化:把字符串首地址赋给stringchar*string;string=“IloveChina!”;string*string!=0字符串指针作函数参数例用函数调用实现字符串复制1.用字符数组作参数2.用字符指针变量作参数aIamateaceh r.fromabyuarasutndetoboet. Iaaeceh r.t. mtavoidcopy_string(charto[],charfrom[]){inti=0;while(from[i]!=' '){to[i]=from[i];i++;}to[i]='
4、 ';}main(){charstr_t[80],str_s[80];gets(str_s);copy_string(str_t,str_s);printf("str_t=%sstr_s=%s",str_t,str_s);}voidcopy_string(char*p1,char*p2){for(;*p2!=' ';p1++,p2++)*p1=*p2;*p1=' ';}main(){charstr_t[80],str_s[80];gets(str_s);copy_string(str_t,str_s);printf("str_
5、t=%sstr_s=%s",str_t,str_s);}例用函数调用实现字符串连接用字符指针变量作参数voidlinkstr(char*p1,char*p2){while(*p1)p1++;while(*p2){*p1=*p2;p1++;p2++;}*p1=' ';return;}main(){charstr_t[80],str_s[80];gets(str_t);gets(str_s);linkstr(str_t,str_s);printf("%s%s",str_s,str_t);}}字符指针变量与字符数组char*cp;与ch
6、arstr[20];str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址charstr[20];str=“IloveChina!”;()char*cp;cp=“IloveChina!”;()str是地址常量;cp是地址变量cp接受键入字符串时,必须先开辟存储空间例charstr[10];scanf(“%s”,str);()而char*cp;scanf(“%s”,cp);()改为:char*cp,str[10];cp=str;scanf(“%s”,cp);()charstr[]={“Hello!”};()charstr[]=
7、“Hello!”;()charstr[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};()char*cp=“Hello”;()inta[]={1,2,3,4,5};()int*p={1,2,3,4,5};()charstr[10],*cp;inta[10],*p;str=“Hello”;()cp=“Hello!”;()a={1,2,3,4,5};()p={1,2,3,4,5};()指针与函数函数指针:函数在编译时被分配的入口地址,用函数名表示。max…...指令1指令2函数指针变量赋值:如p=max;函数返回值的数据类型专
8、门存放函数入口地址可指向返回值类型相同的不同函数指向函数的指针变量定义形式:数据类型(*指针变量名)();如int(*p)