指標(pointer)和參考(reference)的區別

在討論指標和引用之間的區別之前,讓我們先簡單地看一下這兩個術語的含義。在程式中,資料佔用記憶體。為了訪問資料,應該知道資料在執行時被放在記憶體中的確切位置。指標變數和引用變數用於訪問這些資料並操作它們所在的記憶體地址。也就是說,指標和引用都可以用來間接引用物件。它們基本上把記憶體地址作為它們的值。指標和引用之間的關鍵區別在於指標是儲存另一個變數記憶體位置地址的變數,而引用是引用另一個變數的變數。指標和引用這...

指針(pointer)和參考(reference)的區別

在討論指針和引用之間的區別之前,讓我們先簡單地看一下這兩個術語的含義。在程序中,數據佔用內存。為了訪問數據,應該知道數據在執行時被放在內存中的確切位置。指針變量和引用變量用於訪問這些數據並操作它們所在的內存地址。也就是說,指針和引用都可以用來間接引用對象。它們基本上把內存地址作為它們的值。指針和引用之間的關鍵區別在於指針是存儲另一個變量內存位置地址的變量,而引用是引用另一個變量的變量。指針和引用這兩種機制有不同的語法和用法。

什麼是指針(a pointer)?

指針是一種編程語言對象,它將值的內存地址存儲在計算內存中。

c++語法;

積分i=5;

int*ptr=&i;

第一行定義了一個值為5初始化的變量。第二行定義指向變量內存地址的指針。這裡,“ptr”被聲明為“pointer to int”類型的對象,其初始值是對象i的地址。實際上,ptr變量通過存儲其內存地址指向i。

獲取存儲在內存位置的值稱為取消引用。*運算符用於取消對指針的引用。引用表達式ptr之後的間接引用。

要改變i的值,可以使用以下賦值;

*ptr=20;

指針也可以重新分配以引用不同的對象。

空指針是一種特殊類型的指針。空指針通常用0或null表示,並且指向零。在一個很好的例子中,一個指針被分配給一個不被指定為空的指針。此賦值可用於邏輯操作和條件。

指針可用於存儲和管理動態分配內存的地址。使用指針可以有效地實現和控制數據結構(如堆棧、隊列和列表)。例如,隊列可以有兩個指針:頭指針和尾指針。指針也可以用來按變量的地址傳遞變量,這樣可以更改值。直接操作內存或內存映射設備也可以通過使用指針來處理。

指針允許對尋址內存進行受保護和無保護的訪問。因此,必須採取必要的預防措施來驗證指針的內容是否有效。否則,用無效的內存地址取消引用指針可能會導致程序崩潰。

指針在語言中支持,如C、C++、Pascal和許多彙編語言。

指針(pointer)和參考(reference)的區別

指向與變量b關聯的內存地址的指針a。

什麼是參考文獻(a reference)?

引用只是存儲在內存中的值的替代標識符。它使程序能夠間接地訪問特定的數據。

c++語法;

積分i=5;

int&ref=i;

第一行定義了一個值為5初始化的變量。第二行將“ref”聲明為引用i的“reference to int”類型的對象。如果引用被實現為存儲在內存中的特定數據的物理地址,則引用不同於數據本身。

一旦定義了引用,就不能重新分配新值。引用總是引用初始化它的對象。在下面的賦值中,ref仍然引用i,但是值現在是20。

參考值=20;

根據上面的例子,取消引用引用不需要任何運算符。

當變量總是引用對象時,可以使用引用。這是因為,與指針不同,引用不能為null,並且必須始終在初始化時賦值。由於引用必須始終引用某個對象,因此將這樣的變量作為引用可以確保程序能夠高效、正確地工作。如果沒有空引用,則不必測試引用變量的有效性。

引用變量可用於有效地將大數據作為參數傳遞給過程。引用還用於在不同代碼區域之間共享大數據,因為每個代碼都保留對數據的引用。

諸如C++、java、python、perl、php、Ruby等編程語言支持引用。

指針(pointer)和參考(reference)的區別

指針和引用的定義

指針:指針是存儲在計算內存中的對象的內存地址。

引用:引用是對象的替代標識符或別名。

指針和引用的特性

宣言

指針:用*運算符聲明指針。

引用:使用&運算符聲明引用。

解引用

指針:指針變量需要取消對*運算符的引用。

引用:引用變量不需要取消引用運算符。

初始化

指針:指針可以初始化為null。這樣的變量稱為空指針。

引用:引用不能初始化為null。沒有空引用。引用必須始終引用對象。

重新分配

指針:可以重新分配指針變量以引用不同的對象。

引用:不能重新分配引用變量。它總是引用初始化它的對象。

使用

指針:當不存在引用任何內容的可能性,或者需要在不同的時間引用不同的對象時,應該使用指針變量。

引用:當總是有一個對象要引用,並且不需要使用引用變量引用對象以外的任何對象時,應該使用引用變量。

用法的應用

指針和指針可以用來實現數據結構。

引用:引用變量可以用在函數參數中,返回類型定義有用的接口。

使用的語言:

指針:編程語言如C、C++、Pascal和許多彙編語言支持指針。

參考:編程語言如C++、java、python、perl、php、Ruby等支持參考。

Image Courtesy: “Pointers” by This file was made by User:SvenTranslation.Own work.This vector image was created with Inkscape.(CC BY-SA 3.0) via Comm*** – 
  • 發表於 2020-10-28 19:41
  • 閱讀 ( 47 )
  • 分類:科技

你可能感興趣的文章

指示電極(indicator electrode)和參比電極(reference electrode)的區別

指示電極和參比電極的關鍵區別在於,指示電極對分析物活性的變化做出響應,而參比電極對變化不響應,且響應穩定。 指示電極和參比電極是電位滴定中的兩個重要組成部分。這些是進行潛在測量所必需的。在這裡,一個...

  • 發佈於 2020-10-17 06:41
  • 閲讀 ( 90 )

單光束(single beam)和雙光束分光光度計(double beam spectrophotometer)的區別

...考光進行比較)。因此,吸收是樣品光束(穿過樣品後)和參考光束之間的比率。分光光度計有一個單色儀,它能將所需波長與光束隔離開來。在移到單色儀之前,參考光和樣品光重新組合。因此,這樣可以避免或補償對樣品和...

  • 發佈於 2020-10-18 20:17
  • 閲讀 ( 106 )

外面的(out)和參考c#(ref in c#)的區別

...值和返回結果,C使用引數。它們是有值引數、輸出引數和參考引數。值引數用於按值將引數傳遞到方法中。引用引數用於透過引用將引數傳遞給方法。輸出引數用於將結果從方法返回。在C#中,out關鍵字用於輸出引數,ref關鍵字...

  • 發佈於 2020-10-18 20:42
  • 閲讀 ( 51 )

值型別(value type)和參考型別(reference type)的區別

...值,而引用型別儲存指向另一個儲存資料的記憶體位置的指標。 目錄 1. 概述和主要區別 2. 什麼是價值型別 3. 什麼是參考型別 4. 值型別和引用型別的相似性 5. 並列比較-值型別與表格形式的引用型別 6.摘要 什麼是值型別(value typ...

  • 發佈於 2020-10-19 07:42
  • 閲讀 ( 57 )

按值呼叫(call by value)和透過引用呼叫(call by reference)的區別

...式。參考下面用程式碼塊環境編寫的C程式。 圖03:使用指標交換兩個數字 根據下面的給定示例,“a”的值為20,“b”的值為30。程式設計師可以使用swap(&a,&b)函式傳送“a”和“b”的地址,而不是傳遞“a”和“b”的...

  • 發佈於 2020-10-20 00:32
  • 閲讀 ( 46 )

競爭的(competitive)和非競爭性elisa(noncompetitive elisa)的區別

...**抗體的ELISA。另一方面,在非競爭性ELISA中,感興趣抗原和參考抗原之間不存在這種競爭。因此,這是競爭性和非競爭性ELISA的關鍵區別。同樣,競爭ELISA是抑制ELISA,而非競爭ELISA不是抑制ELISA。所以,這也是競爭性和非競爭性EL...

  • 發佈於 2020-10-21 17:20
  • 閲讀 ( 72 )

學術寫作(academic writing)和非學術寫作(non academic writing)的區別

...張。 此外,學術寫作中含有大量特定領域的詞彙。引文和參考文獻列表學術寫作中的另一個重要特徵。此外,學術寫作的基調應該是客觀的和正式的。 學術寫作技巧 總是使用正式語言。避免使用俚語。 不要使用縮略語(動詞...

  • 發佈於 2020-10-21 19:46
  • 閲讀 ( 63 )

apa公司(apa)和哈佛參考文獻(harvard referencing)的區別

...佛參考文獻法》類似,哈佛參考文獻也要求在文字中引用和參考文獻列表。哈佛參考系廣泛應用於科技寫作中的源材料引用。每個參照系在某些方面都是不同的。 文字參考 單一作者 “差異化的目的是透過降低價格敏感度或實現...

  • 發佈於 2020-10-23 18:21
  • 閲讀 ( 58 )

apa公司(apa)和mla公司(mla)的區別

...。標題頁,頁碼,摘要,標題,論文陳述,你的研究證據和參考書目。對於MLA研究論文,不需要標題頁。但是,你必須在第一頁的左上角寫上你的名字、導師的名字、日期和課程名稱。除此之外,還有論文陳述、頁碼、證據和參...

  • 發佈於 2020-10-25 04:44
  • 閲讀 ( 47 )

參考文獻(bibliography)和參考列表(reference list)的區別

參考書目與參考書目 書目和參考書目之間的區別有點難以理解,因為當你第一次看到它們時,它們似乎產生了相同的資訊。這就是為什麼書目和參考書目這兩個術語在含義上常常混淆不清。參考書目和參考書目是研究方法學...

  • 發佈於 2020-11-05 10:35
  • 閲讀 ( 47 )
朴首席的國旻狗
朴首席的國旻狗

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦