当前位置: 代码迷 >> C语言 >> 刚接触C语言,有个基本的语法应用问题不懂。
  详细解决方案

刚接触C语言,有个基本的语法应用问题不懂。

热度:119   发布时间:2007-07-05 10:03:54.0
刚接触C语言,有个基本的语法应用问题不懂。

教材上有这么个程序。
#include "stdio.h"
#include "string.h"
main()
{
char a[20]="abcde";
strcpy(&a[1],a);
puts(a);
我认为结果应该是aabcde,为什么出来的结果是aaaaaaa。

搜索更多相关的解决方案: C语言  语法  include  应用  教材  

----------------解决方案--------------------------------------------------------

这个,你就应该看看strcpy函数的功能了,或是它的用法说明,

跟语法没有什么关系的.


----------------解决方案--------------------------------------------------------
回复:(zhongwawa198)刚接触C语言,有个基本的语法应...

像你们编程的时候,字符串的自我复制常见吗


----------------解决方案--------------------------------------------------------

当复制的源地址和目标地址有覆盖发生时会有不可预料的结果
为了避免这种情况可以使用memmove
#include "stdio.h"
#include "string.h"

int main()
{
char a[20]="abcde";
memmove(&a[1],a,sizeof(a));
puts(a);
}


----------------解决方案--------------------------------------------------------

顺便说一下,你教材上的代码在我使用的gcc version 3.3.1和VC++6.0上的结果的确是你认为的。说明你编译器比较垃级


----------------解决方案--------------------------------------------------------

楼上的,我在VC++6.0里面运行了一下,结果确是aabcdd,怎么回事,谢谢


----------------解决方案--------------------------------------------------------
  相关解决方案