指针06 – 零基础入门学习C语言46
第八章:指针06
让编程改变世界
Change the world by program
字符指针作函数参数
出错了:关于a[]和*a的一些区别!
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student."; //此处应该定义为char b[] = "You are a student.";
//区别两者反汇编代码并解释其意义
//谈谈五个区!
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from, char to )
{
for( ; *from != '?'; from++,to++)
{
to = from;
}
*to = '?';
}
优化:对 copy_string 函数还可作简化
方法一
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student.";
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from, char to )
{
while( (to = from) != '?' )
{
to++;
from++;
}
}
方法二
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student.";
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from, char to )
{
while( (to++ = from++) != '?')
{
;
}
}
方法三
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student.";
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from, char to )
{
while( *from != '?' )
{
to++ = from++;
}
*to = '?';
}
方法四
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student.";
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from, char to )
{
while( to++ = from++ )
{
; // '?' == 0
}
}
方法五
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student.";
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from, char to )
{
for( ; to++ = from++; )
{
;
}
}
方法六
include
void main()
{
void copy_string( char from, char to );
char *a = "I am a teacher.";
char b[] = "You are a student.";
printf("String a = %snString b = %sn", a, b);
printf("copy string a to string b:n");
copy_string(a, b);
printf("nString a = %snString b = %sn", a, b);
}
void copy_string( char from[], char to[] )
{
char p1, p2;
p1 = from;
p2 = to;
while( (p2++ = p1++) != '?' )
{
;
}
}
视频下载
技术, IT技术, 视频教程, C语言
风险提示及免责条款
市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!
