资源描述:
《C语言程序设计第二十讲 指针(3).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言程序设计基础主讲人:庞新苗手机:135-60715936第二十讲:指针(3)指针和字符串,指针和函数主要内容:1、字符串和指针;2、指向函数的指针;一、指针与字符串字符串表示形式用字符数组实现例main(){charstring[]=“IloveChina!”;printf(“%s”,string);printf(“%s”,string+7);}IloveChistring[0]string[1]string[2]string[3]string[4]string[5]string[6]string[7]string[8]string[9]stringstring[10]
2、string[11]string[12]string[13]n!a 用字符指针实现例main(){char*string=“IloveChina!”;printf(“%s”,string);string+=7;while(*string){putchar(string[0]);string++;}}IloveChistringn!a 字符指针初始化:把字符串首地址赋给stringchar*string;string=“IloveChina!”;string*string!=0字符串指针作函数参数例用函数调用实现字符串复制(1)用字符数组作参数(2)用字符指针变量作参数aIam
3、ateaceh r.fromabyuarasutndetoboet. Iaaeceh r.t. mtavoidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!=' '){to[i]=from[i];i++;}to[i]=' ';}main(){chara[]="Iamateacher.";charb[]="Youareastudent.";printf("string_a=%sstring_b=%s",a,b);copy_string(a,b);printf("string_a=%sstring_b
4、=%s",a,b);}voidcopy_string(char*from,char*to){for(;*from!=' ';from++,to++)*to=*from;*to=' ';}main(){char*a="Iamateacher.";char*b="Youareastudent.";printf("string_a=%sstring_b=%s",a,b);copy_string(a,b);printf("string_a=%sstring_b=%s",a,b);}字符指针变量与字符数组char*cp;与charstr[20];str由若干元素组成,
5、每个元素放一个字符;而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);()字符串与数组关系字符串用一维字符数组存放字符数组具有一维数组的所有特点数组名是指向数组首地址的地址常量数组元素的引用方法可用指针法和下标法数组名作函
6、数参数是地址传递等区别存储格式:字符串结束标志赋值方式与初始化输入输出方式:%s%ccharstr[]={“Hello!”};()charstr[]=“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};()scanf(“%s”,str)
7、;printf(“%s”,str);gets(str);puts(str);二、指针与函数函数指针:函数在编译时被分配的入口地址,用函数名表示max…...指令1指令2函数指针变量赋值:如p=max;函数返回值的数据类型专门存放函数入口地址可指向返回值类型相同的不同函数指向函数的指针变量定义形式:数据类型(*指针变量名)();如int(*p)();函数指针变量指向的函数必须有函数说明函数调用形式:c=max(a,b);c=(*p)(a,b);