搜尋
首頁後端開發PHP問題php引用和指標的區別

php引用和指標的區別

Sep 16, 2019 pm 12:00 PM
php差別引用指針

php引用和指標的區別

本質:

引用是別名,指標是位址

具體:

1、從現像上看,指標在運行時可以改變其所指向的值,而引用一旦和某個物件綁定後就不再改變。這句話可以理解為:指標可以被重新賦值以指向另一個不同的物件。但是引用則總是指向在初始化時被指定的對象,以後不能改變,但是指定的對像其內容可以改變。

2、從記憶體分配上看,程式為指標變數分配記憶體區域,而不為參考分配記憶體區域,因為引用宣告時必須初始化,從而指向一個已經存在的物件。引用不能指向空值。

3、從編譯上看,程式在編譯時分別將指標和引用加到符號表上,符號表上記錄的是變數名稱及變數所對應位址。指標變數在符號表上對應的位址值為指標變數的位址值,而引用符號表上對應的位址值為引用物件的位址值。

符號表生成後就不會再改,因此指標可以改變指向的物件(指標變數中的值可以改),而引用物件不能改。這是使用指標不安全而使用引用安全的主要原因。從某種意義上來說引用可以被認為是不能改變的指標。

4、不存在指向空值的引用這個事實,意味著使用引用的程式碼效率比使用指標的要高。因為在使用引用之前不需要測試它的合法性。相反,指針則應該總是被測試,防止其為空。

5、理論上,對於指標的級數沒有限制,但是引用只能是一級。如下:

 int** p1;         // 合法。指向指针的指针
 
  int*& p2;         // 合法。指向指针的引用
 
  int&* p3;         // 非法。指向引用的指针是非法的
 
  int&& p4;         // 非法。指向引用的引用是非法的

注意!上述讀法是從左到右。 

推薦教學:PHP影片教學

以上是php引用和指標的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境