成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

細(xì)說C#中的值類型和引用類型-創(chuàng)新互聯(lián)

概說:

站在用戶的角度思考問題,與客戶深入溝通,找到博州網(wǎng)站設(shè)計(jì)與博州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋博州地區(qū)。

1.值類型變量中直接儲(chǔ)存變量的值,值類型的實(shí)例在內(nèi)存中的儲(chǔ)存位置叫棧(stack)。性能很好,值類型只限于存在很小一塊的數(shù)據(jù)(所以的值類型必須小于16字節(jié))
2.引用類型將其數(shù)據(jù)的地址保存在堆棧中,地址所指向的實(shí)際數(shù)據(jù),保存在稱為堆(heap)的內(nèi)存區(qū)域中。

對(duì)于堆和棧:

棧(操作系統(tǒng)):由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧

堆(操作系統(tǒng)): 一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收,分配方式倒是類似于鏈表。

堆(數(shù)據(jù)結(jié)構(gòu)):堆可以被看成是一棵樹,如:堆排序

棧(數(shù)據(jù)結(jié)構(gòu)):一種后進(jìn)先出的的數(shù)據(jù)結(jié)構(gòu)

下面是堆棧的分布:

細(xì)說C#中的值類型和引用類型

棧:棧作為一種數(shù)據(jù)結(jié)構(gòu),是一種只能在一端進(jìn)行插入和刪除操作的特殊線性表

細(xì)說C#中的值類型和引用類型

堆??梢詮南旅鎺撞糠謪^(qū)別:

1.申請(qǐng)方式:

stack:

由系統(tǒng)自動(dòng)分配。 例如,聲明在函數(shù)中一個(gè)局部變量 int b; 系統(tǒng)自動(dòng)在棧中為b開辟空間

heap:

需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù)

2.申請(qǐng)效率的比較:

棧由系統(tǒng)自動(dòng)分配,速度較快。但程序員是無法控制的。

堆是由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便.

3.申請(qǐng)大小的限制:

棧:在Windows下,是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。這句話的意思是棧頂?shù)牡刂泛蜅5拇笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,在 wINDOWS下,棧的大小是2M(也有的說是1M,總之是一個(gè)編譯時(shí)就確定的常數(shù)),如果申請(qǐng)的空間超過棧的剩余空間時(shí),將提示overflow。因此,能從棧獲得的空間較小。

堆:堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來存儲(chǔ)的空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見,堆獲得的空間比較靈活,也比較大。

堆和棧的區(qū)別可以用如下的比喻來看出:

使用棧就象我們?nèi)ワ堭^里吃飯,只管點(diǎn)菜(發(fā)出申請(qǐng))、付錢、和吃(使用),吃飽了就走,不必理會(huì)切菜、洗菜等準(zhǔn)備工作和洗碗、刷鍋等掃尾工作,他的好處是快捷,但是自由度小。

使用堆就象是自己動(dòng)手做喜歡吃的菜肴,比較麻煩,但是比較符合自己的口味,而且自由度大

細(xì)說:

C#的值類型包括:結(jié)構(gòu)體(數(shù)值類型,bool型,用戶定義的結(jié)構(gòu)體),枚舉,可空類型。

C#的引用類型包括:數(shù)組,用戶定義的類、接口、委托,object,字符串。

數(shù)組的元素,不管是引用類型還是值類型,都存儲(chǔ)在托管堆上。

引用類型在棧中存儲(chǔ)一個(gè)引用,其實(shí)際的存儲(chǔ)位置位于托管堆。

值類型總是分配在它聲明的地方:作為字段時(shí),跟隨其所屬的變量(實(shí)例)存儲(chǔ);作為局部變量時(shí),存儲(chǔ)在棧上。

值類型在內(nèi)存管理方面具有更好的效率,并且不支持多態(tài),適合用作存儲(chǔ)數(shù)據(jù)的載體;引用類型支持多態(tài),適合用于定義應(yīng)用程序的行為。

下面看一個(gè)例子:

using System;

namespace TestValve
{
    class MainClass
    {
        class Number1            //類類型屬于引用類型
        {
            public int val;
            public Number1(int _val)
            {val=_val;}
            public override string ToString ()
            {
                return val.ToString ();
            }
        }

        struct Number2            //結(jié)構(gòu)類型屬于值類型
        {
            public int val;
            public Number2(int _val)
            {val=_val;}
            public override string ToString ()
            {
                return val.ToString ();
            }
        }

        public static void Main (string[] args)
        {
            Number1 n1 = new Number1 (0);    //類類型的實(shí)例化
            Number1 n2 = n1;
            n1.val += 1;
            n2.val += 2;
            Console.WriteLine ("n1={0},n2={1}",n1,n2);

            Number2 n3 = new Number2 (0);    //結(jié)構(gòu)類型的實(shí)例化
            Number2 n4 = n3;
            n3.val += 1;
            n4.val += 2;
            Console.WriteLine ("n3={0},n4={1}", n3, n4);
            Console.ReadKey ();
        }
    }
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:細(xì)說C#中的值類型和引用類型-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article20/ghsco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、App開發(fā)虛擬主機(jī)、網(wǎng)站導(dǎo)航手機(jī)網(wǎng)站建設(shè)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
双流县| 赤壁市| 安康市| 贺兰县| 新闻| 太白县| 同德县| 夏邑县| 大同县| 雷波县| 东宁县| 南宁市| 大兴区| 砀山县| 醴陵市| 潜江市| 南丰县| 孟津县| 开原市| 鄂温| 九寨沟县| 兴国县| 杭锦后旗| 霸州市| 建平县| 内乡县| 孟村| 苍溪县| 同德县| 古丈县| 英吉沙县| 绿春县| 盐山县| 抚远县| 兴山县| 聂荣县| 体育| 博野县| 柘城县| 潮州市| 剑河县|