Turbo C strcpy库函数

aer*_*aer 0 c string strcpy turbo-c

我发现strcpy函数只是将一个字符串复制到了另一个字符串.例如,如果程序包含以下语句:

char buffer[10];
----------
strcpy(buffer, "Dante");
Run Code Online (Sandbox Code Playgroud)

字符串"Dante"将放在数组缓冲区[]中.该字符串将包括终止null(\ 0),这意味着将复制所有六个字符.我只是想知道为什么我们不能简单地通过说什么来达到同样的效果?:

buffer = "Dante";
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错的话,C对待的字符串远比BASIC更像数组.

Mar*_*lon 9

因为字符串不是C中的数据类型."字符串"是char*s,所以当您尝试分配它们时,您只是将内存地址而不是字符复制到缓冲区中.

考虑一下:

char* buffer;

buffer = malloc(20);
buffer = "Dante";
Run Code Online (Sandbox Code Playgroud)

为什么要将"Dante"神奇地放入缓冲区?