请思考:对上面的程序作如下改变: main( i char al l=i am a teacher char b[20],pl, *p2 pI-a 2=b p2=p1 则b数组中的内容是否已复制了a数组中的内容 c語醒设计
请思考:对上面的程序作如下改变: main ( ) { char a[ ]="I am a teacher"; char b[20], *p1, *p2; p1=a; p2=b; p2=p1; 则 b数组中的内容是否已复制了a数组中的内容
结论: pI=a; 2=a p pl->a, p2=p1后;pl->a; 2->b p2 b c語醒设计
结论: p1=a; p2=a; p1→a; p2→b; p1→a; p2 p2=p1后; b
字符串指针作函数参数 与数值变量指针一样,字符串指针,字符串数 组均可作为函数参数 作用:可在函数中改变实参内容。 例:用函数调用实现字符串的复制 方法:(1)字符数组作参数 void copy string(from, to) char from[ l, tol I i int 1=0 while(from [=0) c語醒设计
二、字符串指针作函数参数 例: 用函数调用实现字符串的复制 与数值变量指针一样,字符串指针,字符串数 组均可作为函数参数 作用:可在函数中改变实参内容。 方法:(1)字符数组作参数 void copy_string (from, to) char from[ ], to[ ]; { int i=0; while (from[i]!='\0')
ttol]=from1 ;i++ toj=0’ main() ichar al=I am a teacher char b[ =You are a student printf("string a=%s'n string b=%n",a, b) copy string(a, b) printf("n string a=%sn string b=%sn",a, b) c語醒设计
{to[i]=from[i]; i++} to[i]='\0 '; } main ( ) {char a[ ]="I am a teacher"; char b[ ]="You are a student"; printf("string_a=%s\n string_b=%s\n", a,b); copy_string(a, b); printf("\n string_a=%s\n string_b=%s\n", a, b) }
运行结果: string a- I am a teacher string b=You are a student string a=l am a teacher string b=l am a teacher 实际上,数组b中的内容为 I a m a c he n tio 但以字符串的方式输出b中内容时,遇到第 个0时结束。 可以在main中使用字符串指针: char *a="i am a teacher char *b=You are a student c語醒设计
运行结果: string_a=I am a teacher string_b=You are a student string_a=I am a teacher string_b=I am a teacher 可以在main中使用字符串指针: char a="I am a teacher".; char b="You are a student." … 但以字符串的方式输出b中内容时,遇到第一 个'\0'时结束。 实际上,数组b中的内容为: I a m a t e a c h e r \0 n t \0