在對指針進行操作時經常會涉及到指針的拷貝,一般來講指針的拷貝分為兩種:深拷貝與淺拷貝。兩者之間使用不當會造成很惡劣的影響。下面實例說明:
我們先設定一個字符串指針s,假設其指向內存的內容是“adfsdfsf”,記該存儲區域為M,那么我們得知,s指針所指向區域M。若我們的用指針p對其內容進行淺拷貝,那么我們得到了另一個指向M的指針,即p=s,此時p和s的作用相同,指向內存也相同,所不同的只是名字罷了。若我們對p指針指向的內容進行操作,那么s指針所指向的內容也會發生相應的改變,反之亦然。
若對s進行深拷貝,比如利用函數memcpy,該操作是將s的內存內容賦給p,此時雖然內存區域的內容是相同的,但p和s是兩個指向兩個不同內存區域的指針,對p或s的分別操作都不會影響到對方。