[英]Advantage of using strcpy function in C
void main()
{
char s[100]="hello";
char *t;
t=(char*)malloc(100);
strcpy(t,s);
}
或者,我們可以像這樣將s
分配給t
: t=s;
。 使用替代方法的缺點是什么?
當使用t = s這樣的簡單賦值時,您實際上並沒有在復制字符串,而是使用兩個不同的名稱來引用相同的字符串。
如果分配t=s
應用於t
指向的存儲塊t=s
每個更改都會影響s
,而這可能不是您想要的。
另外,您可能想看一下這篇文章 。
該變量的值t
是一個或多個連續的位置 char
秒。 當您執行t = s
,您將char s[0]
的位置復制到t
(並替換了來自malloc()
的t
的舊值)。 t[0]
和s[0]
指的是完全相同的字符-修改一個字符將對另一個字符可見。
使用strcpy(t, s)
,會將實際字符從一個位置復制到另一位置。
前者就像在同一個房子里放兩個門牌。 后者就像在一個房子里精確復制所有家具,然后把它放到第二個房子里。
strcpy()
函數用於將一個字符串復制到另一個字符串,您在這里誤用了它。使用指針時,您可以很容易地做到這一點,
t=s;
指針't'獲取字符串's'的基址,這就是指針的作用。另一方面,您進行strcpy工作。使指針存儲了整個字符串。 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.