日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(五十九)自动存储、静态存储、动态存储

發(fā)布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (五十九)自动存储、静态存储、动态存储 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

自動存儲:

函數(shù)內(nèi)部定義的常規(guī)變量,被稱為自動變量,這意味著他們在所屬的函數(shù)被調(diào)用的時候自動產(chǎn)生,在該函數(shù)結(jié)束時消亡。

?

自動變量是一個局部變量,作用域為包含他的代碼塊,比如int?main(){}中定義的int?a;?在int?abc(){}這個函數(shù)中就不能用。

?

自動變量通常儲存在??中,這意味著執(zhí)行代碼塊時,其中的變量將依次加入到?棧?中,而離開代碼塊時,將按相反的順序釋放這些變量,這被稱為后進先出(LIFO),因此,在程序執(zhí)行的過程中,棧將不斷的增大和縮小。

?

靜態(tài)存儲:

靜態(tài)存儲是整個程序執(zhí)行期間都存在的存儲方式。使變量成為靜態(tài)的方式有兩種:

①在函數(shù)外面定義他,比如:

#include <iostream> using namespace std; int a = 1; int main() {cout << a;system("pause");return 0; }

②在聲明變量的時候,使用static;如代碼:

static?int?a?=?1;

當(dāng)使用static的時候,能使得函數(shù)在調(diào)用之后,再次調(diào)用的時候,static限定的值能保持在上次調(diào)用之后,函數(shù)的值。如代碼:


#include <iostream> using namespace std; void ab(); int main() {ab(); //調(diào)用函數(shù)abab(); //再次調(diào)用函數(shù)absystem("pause");return 0; }void ab() {static int a = 1; //在第一次起作用的時候a=1,后面再次執(zhí)行的時候不會再次給a賦值為1cout << "調(diào)用ab函數(shù)的時候顯示a的值:" << a << endl;a = a + 1;cout << "a +1 =" << a << endl;; }

輸出:


調(diào)用ab函數(shù)的時候顯示a的值:1 a +1 =2 調(diào)用ab函數(shù)的時候顯示a的值:2 a +1 =3 請按任意鍵繼續(xù). . .

?

我們發(fā)現(xiàn),第一次執(zhí)行函數(shù)ab()的時候,輸出a的值是1,然后在執(zhí)行函數(shù)的時候,a=a+1,于是a=2

當(dāng)?shù)诙螆?zhí)行函數(shù)的時候,a并不是值為1,而是保持了第一次調(diào)用函數(shù)ab()退出時變量a的值,即a=2。

這是static來限定函數(shù)內(nèi)變量的特點,保持函數(shù)變量在退出時的值。

?

?

動態(tài)存儲和內(nèi)存泄露:

new和delete運算符提供了比靜態(tài)變量和自動變量更智能的存儲方式。

?

他們管理了一個內(nèi)存池,這在c++被稱為自由存儲空間(free?store)或(heap),該內(nèi)存池與?用于?靜態(tài)存儲?和?動態(tài)存儲?的內(nèi)存是分開的。

?

使用new在堆?上面創(chuàng)建變量,然后再使用delete進行刪除,可以避免內(nèi)存泄露。如果單純使用new,而沒使用delete,那么將會導(dǎo)致new的內(nèi)存地址被占用,在整個程序周期之內(nèi),就無法再次使用這部分內(nèi)存了。在極嚴(yán)重的情況下,很可能導(dǎo)致內(nèi)存被全部用盡,于是程序崩潰。例如代碼:

#include<iostream> char *getname(void); using namespace std;int main() {int i;for (i = 1;i<5;i++){char*a;a = getname(); //這個時候,指針c和指針a的指向內(nèi)存地址是相同的cout << "在主函數(shù)里,把指針c的地址賦給指針a,指針a的值為" << a << endl;cout << "指針a的地址為" << (int*)a << endl; delete[]a; //刪除指針a,因為指針a和指針c指向的內(nèi)存地址相同,相當(dāng)于也delete了指針ccout << endl;}system("pause");return 0; }char*getname() {char*b = new char[20]; //指針b占用了堆中的內(nèi)存空間cout << "隨便輸點什么,別超過20個字符" << endl;cin.get(b, 20).get(); cout << "你輸入的是: " << b << endl; cout << "你輸入的位置所在的內(nèi)存地址為:" << (int*)b << endl; char*c = new char[strlen(b) + 1]; //初始化指針c,并位置new一個新的內(nèi)存地址strcpy_s(c, strlen(b) + 1, b); cout << "將你輸入的字符串復(fù)制到指針c的位置。" << endl;cout << "指針c的地址為:" << (int*)c << endl; cout << "指針c所指向地址的值為" << c << endl; delete[]b; //因為指針c和指針a指向相同,在main函數(shù)中delete指針a,就相當(dāng)于delete了指針c。//但指針b不同,如果不delete指針b,指針b所占用的內(nèi)存空間就一直存在,于是就可能造成內(nèi)存泄露return c; }

因為在getname()函數(shù)中,new了2次。在main函數(shù)中new了一次,并delete了一次。

首先,main函數(shù)中的delete了main函數(shù)中new的,

又由于getname()函數(shù)中的指針c和main中的指針a相同,于是相當(dāng)于又delete了一個getname()函數(shù)中的指針,但還存在一個指針b沒有被刪除,這個時候,只有刪除了指針b,才可以避免導(dǎo)致內(nèi)存泄露。


總結(jié)

以上是生活随笔為你收集整理的(五十九)自动存储、静态存储、动态存储的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产少女免费观看高清 | 久久精精品久久久久噜噜 | 91国偷自产一区二区三区女王 | 婷婷在线免费 | 国产视频手机在线播放 | 91看片成人 | 国产偷人爽久久久久久老妇app | 亚洲一区播放 | 99色网| aa视频在线 | 久久青草热 | 亚卅色图 | 久久伊人一区 | 韩国性猛交╳xxx乱大交 | 色婷婷免费视频 | 日韩美女视频19 | 色av导航| 小情侣高清国产在线播放 | www.欧美一区二区三区 | 成 人 免费 黄 色 | www.色天使 | 日韩一区二区三区在线 | 欧美色第一页 | 成人在线不卡视频 | 制服师生在线 | 在线亚洲观看 | a视频免费看 | 欧洲一级视频 | 成人在线观看网 | 五月激情综合网 | 一本色道久久综合 | 国产精品福利一区 | 日本中文字幕二区 | 中文字幕av专区dvd | 热久久久久久久 | 夜夜天堂| 午夜免费播放观看在线视频 | 国产做受入口竹菊 | 姑娘第5集在线观看免费好剧 | 国产人妻黑人一区二区三区 | 免费观看在线高清 | 污漫在线观看 | 中文字幕有码在线观看 | 中日一级片 | 天堂网成人 | 女性裸体视频网站 | 欧美日韩亚洲国产精品 | 欧美久久久久久久久 | 伊人资源网| 午夜啪啪网站 | 天堂俺去俺来也www久久婷婷 | 久久av中文字幕 | 男女午夜啪啪 | 五月婷婷丁香久久 | 中文字幕免费观看 | 午夜婷婷 | 欧美人禽杂交狂配 | 国产精品一区二区三区在线 | 国产乱轮视频 | 精品黄色av | 91香蕉视频黄 | 国产日产亚洲精品 | 日韩欧美中文字幕在线播放 | 国产三级漂亮女教师 | 亚洲一区a| 玩偶姐姐在线看 | 久久五月婷| 日韩高清成人 | 成人免费影片 | 我要看黄色大片 | 韩日av片 | 男女洗澡互摸私密部位视频 | 99精品中文字幕 | www.com国产| 永久中文字幕 | 天堂男人在线 | 久久第一页 | 疯狂做爰高潮videossex | 欧美久草| 国产精品无码一区二区无人区多人 | 高清不卡av | 国产精品.com | 91精品久久久久久粉嫩 | 国产在线精品一区 | 人人妻人人澡人人爽人人精品 | 伊人成人动漫 | 这里只有精品视频 | 亚洲天堂av片 | 久久av喷吹av高潮av萌白 | 婷婷激情影院 | 蜜臀久久99精品久久一区二区 | 紧身裙女教师三上悠亚红杏 | 欧洲久久久久久 | free性娇小hd第一次 | 天天插插| 91色交 | 欧美50p | 无人在线观看高清视频 单曲 | 成人夜晚视频 |