粘個(gè)代碼占位置,以后有時(shí)間把指針函數(shù),函數(shù)指針都補(bǔ)上
成都創(chuàng)新互聯(lián)公司是專業(yè)的穆棱網(wǎng)站建設(shè)公司,穆棱接單;提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行穆棱網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
#includeusing namespace std;void freePtr1(int* p1){ /*未釋放內(nèi)存前 -> p1 Address : 0012FDDC p1 value : 003429B8, 在這里,p1它也是一個(gè)變量,既然是一個(gè)變量, 那么它將會(huì)以值的傳遞,把外部變量p1傳到棧內(nèi),在棧內(nèi)產(chǎn)生一個(gè)地址:0012FDDC, 當(dāng)然,它的值不會(huì)變?nèi)匀皇侵赶蚨训刂罚?03429B8 。*/ delete p1; //系統(tǒng)回收p1值的地址003429B8處的內(nèi)存。 p1 = NULL;//對(duì)p1賦以NULL值即:00000000,注意:p1本身的地址并沒有變,變的是p1的值。 //釋放內(nèi)存后 -> p1 Address : 0012FDDC p1 value : 00000000 //,出棧后,p1由于是一個(gè)臨時(shí)對(duì)象,出棧后它會(huì)自動(dòng)被視為無效。}void freePtr2(int*& p2) { /*未釋放內(nèi)存前 -> p2 Address : 0012FEC8 p2 value : 003429B8, p2是一個(gè)指針的引用,即引用指向指針, 記住引用的特點(diǎn):對(duì)引用的對(duì)象直接操作。所以它的地址和值與棧外的main()函數(shù)中,p2的值是同一個(gè)。*/ delete p2; //對(duì)p2所引用的指針進(jìn)行釋放內(nèi)存,即:系統(tǒng)回收main()函數(shù)中 p2的值 003429B8 地址處的內(nèi)存。 p2 = NULL;//對(duì)main()函數(shù)中p2的指針賦以NULL值。 //釋放內(nèi)存后 -> p2 Address : 0012FEC8 p2 value : 00000000, //由于操作的對(duì)象都是main()函數(shù)中的p2,所以它將應(yīng)用到原變量中。}int main(){ int *p1 = new int [1]; //釋放內(nèi)存前-> p1 Address : 0012FED4 p1 value : 003429B8 freePtr1(p1); //釋放內(nèi)存后-> p1 Address : 0012FED4 p1 value : 003429B8 int *p2 = new int [1]; //釋放內(nèi)存前-> p2 Address : 0012FEC8 p2 value : 003429B8 freePtr2(p2);//*&的情況. //釋放內(nèi)存后-> p2 Address : 0012FEC8 p2 value : 00000000}