[中小企业投融资交易会]指针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言语原文发布于宽客论坛,点击阅览原文
技能, IT技能, 视频教程, C言语原文发布于宽客论坛,点击阅览原文
目录
推荐阅读
-
方大碳素股票(600516方大炭素股票)
方大炭素股票是方大炭素新材料科技股份有限公司在上交所发行的股票,股票代码为方大炭素新材料科技股份有限公司的总部位于甘肃省兰州市红古...
-
2616(甄姬)
【半导体见顶原因剖析】之所以我以为半导体极度危险是有原因的,单靠臆想就喊出这个标语是站不住脚的。一些玩半导体的韭菜新手,一上来就质...
-
电脑版东方财富网(张玉霞)张玉霞
信用卡的可用额度一般便是银行给予持卡人的授信额度,是可以用来进行透支消费的额度。一般状况下,鄙人卡的时分假如信用卡的授信额度的5千...
-
[美好集团]28投资网:打开财富自由大门
1.什么是28出资网?28出资网是一家专心于为个人和组织供给股票、基金、期货等多种出财物品的归纳金融服务渠道。2.为什么挑选2...
-
方大碳素股票(方大碳素股票股)
总的来说,我认为方大炭素作为化工行业的龙头企业,有望在行业的改变之际发展的前景会越来越好但是文章具有一定的滞后性,如果想更准确地知...
-
央企etf(161610)
...