作者:本多天舞 | 来源:互联网 | 2022-12-02 16:32
如果我使用strcpy()
功能和赋值运算符,它们有什么区别吗?
char word[][40],*first;
以下是2个例子.
*first=word[0];
strcpy(first,&word[0]);
V. Kravchenk..
5
strcpy
执行深层复制.它将地址中包含的数据(等于指针的值)复制到地址处的存储器,该存储器等于第二指针.
赋值只是指定第一个指针的第二个指针值.
这是一个小图:
A -> "some data "
B -> "some other data "
分配后:
A -> "some data "
/
/
B "some other data "
strcpy之后:
A -> "some data "
B -> "some data "
请注意,strcpy
要复制的内存必须事先分配.
1> V. Kravchenk..:
strcpy
执行深层复制.它将地址中包含的数据(等于指针的值)复制到地址处的存储器,该存储器等于第二指针.
赋值只是指定第一个指针的第二个指针值.
这是一个小图:
A -> "some data "
B -> "some other data "
分配后:
A -> "some data "
/
/
B "some other data "
strcpy之后:
A -> "some data "
B -> "some data "
请注意,strcpy
要复制的内存必须事先分配.