C/C++淺拷貝和深拷貝的實(shí)例詳解-創(chuàng)新互聯(lián)

C/C++ 淺拷貝和深拷貝的實(shí)例詳解

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、通遼網(wǎng)站維護(hù)、網(wǎng)站推廣。

深拷貝是指拷貝對象的具體內(nèi)容,而內(nèi)存地址是自主分配的,拷貝結(jié)束之后,兩個(gè)對象雖然存的值是相同的,但是內(nèi)存地址不一樣,兩個(gè)對象也互不影響,互不干涉。

淺拷貝就是對內(nèi)存地址的復(fù)制,讓目標(biāo)對象指針和源對象指向同一片內(nèi)存空間.

淺拷貝只是對對象的簡單拷貝,讓幾個(gè)對象共用一片內(nèi)存,當(dāng)內(nèi)存銷毀的時(shí)候,指向這片內(nèi)存的幾個(gè)指針需要重新定義才可以使用,要不然會成為野指針。

在iOS開發(fā)中也會涉及到淺拷貝和深拷貝,簡而言之:

淺拷貝:拷貝指針變量的值

深拷貝:拷貝指針?biāo)赶騼?nèi)存空間

不過這次我們通過C語言來實(shí)現(xiàn):

//聲明一個(gè)結(jié)構(gòu)體
typedef struct Person {
  char name[20];
  int age;
  char *alias;
}Person;

//拷貝方法
void copyPerson(Person *from, Person *to){

  *to = *from;
}
//main函數(shù)
int main(int argc, const char * argv[]) {

  Person p1;
  p1.age = 11;
  strcpy(p1.name, "royce");
  p1.alias = "owen";
  Person p2;

  copyPerson(&p1, &p2);

  printf("p2:%p p1:%p\np2-alias:%p p1-alias:%p\n",&p2,&p1,p2.alias,p1.alias);

  return 0;
}
//打印
p2-alias:0x100000f80 p1-alias:0x100000f80

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標(biāo)題:C/C++淺拷貝和深拷貝的實(shí)例詳解-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article24/csggje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站設(shè)計(jì)、Google、網(wǎng)站制作搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)