• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            內存地址(內存地址是什么)

            更新時間:2023-03-01 17:45:33 閱讀: 評論:0

            1 內存單元的地址、值屬性

            程序的代碼和數據要存儲到內存才可以被執行。內存單元同時具有地址屬性和值屬性。

            地址屬性:每一個字節(8個位)都有一個內存地址對應,變量名就是對地址的命名,讓其更好理解、記憶和使用;

            值屬性:一串的0、1二進制,按數據類型確定其長度和解碼方案;

            2 普通、指針、引用變量對地址、值屬性的顯式、隱式使用

            普通、指針、引用變量的區別在于對地址、值屬性的顯式、隱式使用的方式不同:

            3 引用的本質是一個實現的自動解引用指針常量

            引用可以理解為其引用的變量的別名,但本質是一個實現的自動解引用指針常量。

            在函數定義中,引用在形參在聲明時,顯式使用地址屬性,類似指針變量的使用。在函數體中,顯式使用變量(別名)的值屬性,類似于普通變量,因為由編譯器實現了自動解引用。

            引用的常量屬性,必須在聲明時初始化(也就再沒有機會做其它變量的別名或引用了),也因為其具有自動解引用的屬性,聲明(包括初始化)以外的使用都是顯式對應其指向的地址的值的引用(相當于直接使用其引用(或指向)的普通變量)。

            因為這些屬性,相對于指針,引用更安全,使用更簡潔。當然,引用不能替代指針,指針有自己的使用場合,特別是當其不斷需要變更指向時。

            #include <iostream>using namespace std;void swap(int& a,int&b){ int t; t=a; a=b; b=t;}void main(){ int i=3; int j=5; swap(i,j); cout<<i<<","<<j<<endl; system("pau");}

            引用占用內存空間嗎?

            看下面的小實例:

            #include <iostream>using namespace std;void main(){ int j=3; int var=4; int* p = &var; int& f = var; int i = 5; cout<<&j<<endl; cout<<&var<<endl; cout<<&p<<endl; cout<<&f<<endl; cout<<&i<<endl; system("pau");}/*0012FF440012FF400012FF3C0012FF400012FF34/*

            上面定義了上述各種類型的變量,因為都是局部變量,被分配在棧空間,因為定義在一起,其地址也應該是緊鄰在一起的,上面的int& f = var; 引用變量f也是夾在中間,如果不占用空間的話,其前面與后面變量的地址所相關的數量應該是前面變量類型的長度,

            int* p = &var; int& f = var; int i = 5;

            32位計算機中,p的長度是4,地址是0012FF3C,0012FF3C-4=0012FF38,但i的地址是0012FF34。所以,其實質是占用了一個指針長度的內存空間,但用求址運算符"&“求出的卻是其別名的地址,其本身的地址是隱藏的。

            4 函數的值傳遞、指針傳遞、引用傳遞

            程序的數據始終需要在共享與相對獨立、內聚與耦合之間取舍。類的封裝與訪問屬性的控制以及友元的語法機制就是如此,函數也是面向過程的封裝,函數之間可以相互調用,其數據的共享與相對的獨立性的取舍就用了值傳遞、指針傳遞、引用傳遞的語法機制。

            值傳遞是為了實現函數之間的相互獨立性,被調用函數對調用函數來說,我是值傳遞,我只用你的變量的值(實參),由編譯器在棧內幫我找一塊內存單元(用形參命名,如果是自定義類型,可能需要一大片內存空間),你只要把變量的值傳遞進去,此后,實參與形參對應各自的棧空間,彼此不相關,相互獨立。獨立是獨立了,但賦值是需要時間的,是有性能損耗的,另外,另外的空間也是一種浪費。

            指針傳遞破壞了上述的獨立性,但實現了數據的共享,有了時間和空間上更高的效率,讓參數有了輸出的功能。被調用函數對調用函數來說,我是指針傳遞,編譯器不會再在棧內開辟內存空間來存儲你的變量(實參)的值了(只需用一個字長的空間來保存一個地址值),我們共享、共同使用你的用做實參的變量的空間,這樣沒有時間和空間的浪費。

            引用傳遞和指針傳遞都是址傳遞,都是數據共享,只是引用相對來說,在特殊的場合下,如上面所說的,更安全(因為其地址屬性的使用只有一次的機會)、更簡潔(定義后無須解引用即使用其引用的變量(別名)的值,不然為什么叫引用呢?)。

            函數可以返回值,也可以返回地址,返回值與傳遞值也有一個相同的地方,也是另行使用一個棧上的內存空間,建立一個臨時對象保存這個值(如果是自定義類型,可能需要一大片內存空間)。返回地址也是只保存了一個地址值。需要注意的是,不要返回局部變量的地址值,因為出了這個被調用函數,其局部變量的地址值已不可見了。

            需要注意的是,實參與形參的結合以及函數返回,會有隱式類型轉換的問題。

            -End-

            本文發布于:2023-02-28 20:13:00,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167766393282080.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:內存地址(內存地址是什么).doc

            本文 PDF 下載地址:內存地址(內存地址是什么).pdf

            標簽:內存   地址
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 少妇人妻偷人精品免费| 国产理论精品| 亚洲中文无码+蜜臀| 人妻中文字幕亚洲一区| 在线看国产精品自拍内射| 国产国语一级毛片| 国产成人MV视频在线观看| 欧美人与动牲交xxxxbbbb| 亚洲av永久无码精品天堂久久| 五月av综合av国产av| 五月婷之久久综合丝袜美腿| 中文字幕精品av一区二区五区| 国产成人欧美一区二区三区在线| 国产成人AV在线免播放观看新 | 秋霞在线观看片无码免费不卡| 蜜臀久久综合一本av| 人妻少妇精品视频专区| 久99久热免费视频播放| 视频二区国产精品职场同事| 亚洲男人天堂2018| 午夜免费国产体验区免费的| 产国语一级特黄aa大片| 中文无码高潮到痉挛在线视频| 无码熟熟妇丰满人妻porn| 国产精品国产自线拍免费软件| 狠狠噜天天噜日日噜无码| 久久综合国产精品一区二区| 日韩区中文字幕在线观看| 欧美成人www免费全部网站| 精品国产乱码久久久人妻| 久久精品国产99国产精品澳门| 国内精品自线在拍| 三上悠亚日韩精品二区| 日韩视频一区二区三区视频| 国产高颜值不卡一区二区| 国产人妻人伦精品婷婷| 国产亚洲精品福利在线无卡一| 精品亚洲无人区一区二区| 一出一进一爽一粗一大视频| 白嫩少妇激情无码| 亚洲人成黄网站69影院|