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更像数组.
因为字符串不是C中的数据类型."字符串"是char*s,所以当您尝试分配它们时,您只是将内存地址而不是字符复制到缓冲区中.
考虑一下:
char* buffer;
buffer = malloc(20);
buffer = "Dante";
Run Code Online (Sandbox Code Playgroud)
为什么要将"Dante"神奇地放入缓冲区?