《C++ Primer Plus》筆記>指針及存儲小結(jié)

聲明指針:
typeName * pointerName;

指針賦值:

double * pn;
double bubble = 3.2;
pn = &bubble;

數(shù)組名:
通常數(shù)組名是第一個元素的地址。
只有在調(diào)用 sizeof() 的時候會返回整個數(shù)組的長度。

指針?biāo)阈g(shù):
指針與整數(shù)相加的結(jié)果是指針移動整數(shù)個位置。
指針相減的結(jié)果是整數(shù),只有當(dāng)兩個指針指向同一個位置時才有意義。

解除引用:
即取值。

char * p = a;
cout << *p; // *p即解除引用

數(shù)組的動態(tài)和靜態(tài)聲明:
C:

int size;
scanf(“%d”,&size);
int * b = (int*)malloc(sizeof(int)*size)`

C++:

int size;
cin >> size;
int * b = new int [size];

數(shù)組表示法和指針表示法:
使用方括號等同于指針解除引用操作。

a[0] means *a;
a[3] means *(a+3);

自動存儲:
定義常規(guī)變量時使用自動存儲空間,即自動變量。
這些變量在所屬含稅被調(diào)用時自動產(chǎn)生,函數(shù)結(jié)束時消亡。
事實(shí)上,自動變量是局部變量,作用域?yàn)榘拇a塊,即花括號內(nèi)。
自動變量存儲在棧中。
執(zhí)行代碼塊時,自動變量按定義順序加入到棧中,離開時按相反順序退出。
在程序執(zhí)行時,棧不斷地增大和縮小。

靜態(tài)存儲:
在整個程序的執(zhí)行期間都存在的存儲方式。
方式有兩種:在函數(shù)外定義它;使用關(guān)鍵字static;
static double fee = 56.50
自動存儲和靜態(tài)存儲的關(guān)鍵在于:這些方法嚴(yán)格的限制了變量的壽命。
變量可能存在于程序的整個生命周期(靜態(tài)變量),也可能只是在特定函數(shù)被執(zhí)行時存在(自動變量)。

動態(tài)存儲:
即new和delete運(yùn)算符的方法,它們管理了一個內(nèi)存池——堆。
堆與用于靜態(tài)和自動變量的內(nèi)存是分開的。
new 和 delete 能夠在一個函數(shù)中主動地分配內(nèi)存,而在另一個函數(shù)中釋放它。因此數(shù)據(jù)的生命周期完全不受程序或者函數(shù)的生存時間所控制。

內(nèi)存泄漏:
如果在使用new之后沒有調(diào)用delete,那么即使包含指針的內(nèi)存被釋放,堆上動態(tài)分配的變量和結(jié)構(gòu)也將繼續(xù)存在。這將導(dǎo)致內(nèi)存泄漏。被泄露的內(nèi)存將在整個程序的生命周期都不可使用。甚至可能導(dǎo)致內(nèi)存耗盡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,606評論 3 44
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,655評論 1 51
  • 版權(quán)聲明:本文為 gfson 原創(chuàng)文章,轉(zhuǎn)載請注明出處。注:作者水平有限,文中如有不恰當(dāng)之處,請予以指正,萬分感謝...
    gfson閱讀 3,482評論 0 6
  • 原版:張國榮&《Monica》 備注:張國榮用粵語發(fā)音cheung kwok wing 更有感覺哦 你那時芳華絕代...
    幻夢邪魂閱讀 585評論 1 3
  • 自從進(jìn)了機(jī)關(guān)后,熬夜加班成為常態(tài),晚睡的習(xí)慣也就在那時候養(yǎng)成的,剛開始還好,加完班躺床上就睡著,太困了。后來,加班...
    Andy飛翔閱讀 211評論 0 0

友情鏈接更多精彩內(nèi)容