如果我使用strcpy()
函数和赋值运算符,它们有什么区别吗?
char word[][40],*first;
以下是第二个示例。
*first=word[0];
strcpy(first,&word[0]);
如果我使用strcpy()
函数和赋值运算符,它们有什么区别吗?
char word[][40],*first;
*first=word[0];
strcpy(first,&word[0]);
strcpy
函数执行深复制。它会将指针变量存储的地址所对应的内存中的数据复制到另一个指针变量存储的地址所对应的内存中。
而赋值仅仅是将第一个指针的值直接赋给第二个指针。
以下是一个简单的示意图:
A -> "some data "
B -> "some other data "
分配后:
A -> "some data "
/
/
B "some other data "
复制后:
A -> "some data "
B -> "some data "
请注意,strcpy
复制的内存必须事先分配好。
=
)。而“等于运算符”则是==
。我已经修改了你的问题以避免混淆。 - Sander De Dycker