Java的引用和C++的指針都是指向一塊內存地址的,通過引用或指針來完成對內存數(shù)據(jù)的操作,但是它們在實現(xiàn),原理作用等方面卻有區(qū)別。
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、網(wǎng)站建設、外貿網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的威海網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!(1)類型:引用其值為地址的數(shù)據(jù)元素,Java封裝了的地址,可以轉換成字符串查看,長度也可以不必擔心。C++指針是一個裝地址的變量,長度一般是計算機字長,可以認為是個int。
(2)所占內存:引用聲明時沒有實體,不占空間。C++指針如果聲明之后會用到才會賦值。如果用不到不會分配內存。
(3)類型轉換:引用的類型轉換,也可能不成功,運行時拋異?;蛘呔幾g就不能通過。C++指針指示個內存地址,指向內存,對程序來說還都是一個地址,但可能所指的地址不是程序想要的。
(4)初始值:引用初始值為java關鍵字null。C++指針是int,如不初始化指針,那它的值就不是固定的了,這很危險。
(5)計算:引用不可以計算。C++指針是int,他可以計算,如++或--,所以經(jīng)常用指針來代替數(shù)組下標。
(6)內存泄露:Java引用不會產(chǎn)生內存泄露。C++指針是容易產(chǎn)生內存泄露的,所以程序員要小心使用,及時回收。
(7)作為參數(shù):Java的方法參數(shù)只是傳值,引用作為參數(shù)使用時,會給函數(shù)內引用的值的COPY,所以在函數(shù)內交換倆個引用參數(shù)是沒意義的,因為函數(shù)只交換參數(shù)的COPY值,但在函數(shù)內改變一個引用參數(shù)的屬性是有意義的,因為引用參數(shù)的COPY所引用的對象時和引用參數(shù)是同一個對象。
C++指針作為參數(shù)給函數(shù)使用,實際上就是它所指的地址在被函數(shù)操作,所以函數(shù)內使用指針參數(shù)的操作都將直接作用到指針所指向的地址(變量,對象,函數(shù)等)。
以上就是java中的引用與c++中的指針的區(qū)別的詳細內容,更多請關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司其它相關文章!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。