如果我使用strcpy()功能和赋值运算符,它们有什么区别吗?
char word[][40],*first;
Run Code Online (Sandbox Code Playgroud)
以下是2个例子.
*first=word[0];
strcpy(first,&word[0]);
Run Code Online (Sandbox Code Playgroud)
strcpy执行深层复制.它将地址中包含的数据(等于指针的值)复制到地址处的存储器,该存储器等于第二指针.
赋值只是指定第一个指针的第二个指针值.
这是一个小图:
A -> "some data "
B -> "some other data "
Run Code Online (Sandbox Code Playgroud)
分配后:
A -> "some data "
/
/
B "some other data "
Run Code Online (Sandbox Code Playgroud)
strcpy之后:
A -> "some data "
B -> "some data "
Run Code Online (Sandbox Code Playgroud)
请注意,strcpy要复制的内存必须事先分配.