日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本a v网站| 久久国产免费 | 男人扒女人添高潮视频 | 亚洲色图图片区 | 青青久久国产 | av漫画在线观看 | 国产精品久久不卡 | 亚欧洲精品 | 巨胸大乳www视频免费观看 | 欧美乱轮 | 免费操人视频 | 亚洲大尺度网站 | 河北彩花av在线播放 | 500福利视频导航 | 性欢交69国产精品 | 天天看天天爽 | 欧美亚洲高清 | 五月导航| 男女69视频 | 中文字幕欧美人妻精品 | 射美女 | 国产精品一区二区三区免费 | 日韩成人一区二区视频 | 蜜桃tv一区二区三区 | 日韩一二三级 | 秘密基地动漫在线观看免费 | 超碰免费看 | 欧美日韩中文在线 | 丰满少妇xbxb毛片日本 | 国产精品玖玖玖 | 一级黄色片免费 | 亚洲不卡电影 | 国产精品一线天粉嫩av | 亚洲影视网| 奇米影视久久久 | 黄黄视频在线观看 | 亚洲天堂一区二区三区四区 | 一区二区高清视频 | 免费在线观看一区二区 | 国产亚洲美女精品久久久2020 | 日韩毛片在线播放 | 制服.丝袜.亚洲.中文.综合懂色 | 欧美日韩免费观看一区=区三区 | 伊人春色网| 精品综合久久久久 | 奇米第四色首页 | 成人精品在线视频 | 国产欧美日韩精品区一区二污污污 | 成人免费一级视频 | 伊人影院综合在线 | 欧美午夜精品理论片a级按摩 | 一区二区三区精品国产 | 欧美一区二区三区国产 | 欧美大片18| 欧美电影一区 | 999免费 | 欧美激情一二三 | 在线观看亚洲色图 | 黄色免费看视频 | 老司机午夜福利视频 | 成人久久18免费网站图片 | 男女拍拍拍| 精品国产96亚洲一区二区三区 | free性丰满69性欧美 | 成人黄色片免费看 | 性无码专区无码 | 韩国日本在线观看 | 97中文在线| 亚洲a一区 | 亚洲码中文 | 亚洲天堂影院在线观看 | 久热草| 亚洲欧洲日本精品 | 久久久久久久国产精品美女 | 国产三级伦理片 | 天天干视频在线观看 | 一本色道久久hezyo加勒比 | 精品国产99久久久久久 | 午夜久久久久久久 | 日本在线一级 | 美色视频 | 亚洲精品网站在线播放gif | 一眉道姑 电影 | 人妻 校园 激情 另类 | 黄色免费网站观看 | 黄色av网站在线免费观看 | 免费av日韩| 麻豆传媒在线看 | 亚洲一区在线观 | 成人午夜免费网站 | 日韩性xx | 激情小视频在线观看 | 免费a大片| 日本精品一区在线观看 | 国产在线无 | 黄色网址在线视频 | 欧洲色网 | 北条麻妃青青久久 | 亚洲一区免费在线观看 |