亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我們需要指針來為 Go/C 中的變量賦值,而不是 C#/Java

為什么我們需要指針來為 Go/C 中的變量賦值,而不是 C#/Java

Go
慕婉清6462132 2021-11-29 19:41:51
這實際上是一個普遍的問題,但現在我正在使用 Go 和 C#。假設我們想從用戶在 Go 中的輸入中分配一個變量:func main() {    var input float64    fmt.Scan(&input)}很明顯為什么我們需要一個內存位置來放置我們的新值。但是為什么在像 Java 或 C# 這樣的語言中,我們沒有遵循相同的邏輯:var input = Convert.ToInt32(Console.ReadLine());// and not &input ...
查看完整描述

2 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

Java 和 C# 是高級語言,它們抽象了 C 等低級語言所需的大部分內存管理和其他特定事物。

在這種情況下,該Console.ReadLine()函數分配內存來存儲控制臺輸入并將其復制到input變量中。

由于這些語言具有垃圾收集功能,分配和釋放內存是自動完成的,因此該框架不需要您顯式傳遞要寫入的內存地址,并且不希望您在使用完內存后釋放內存。



查看完整回答
反對 回復 2021-11-29
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

在 Go 中,與 C/C++ 一樣,指針變量是通過引用傳遞類型的方式。

Java 和 C# 等語言不鼓勵使用指針變量。C# 具有用于通過引用傳遞值類型的“ref”關鍵字和“boxing”。

有關“ref”的更多信息, 參見此處:https : //msdn.microsoft.com/en-us/library/14akc2c7.aspx有關“拳擊”的更多信息,請參見此處:https : //msdn.microsoft.com/en-us/圖書館/yz2be5wk.aspx


查看完整回答
反對 回復 2021-11-29
  • 2 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號