下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第Go語言應(yīng)該什么情況使用指針指針變量是一個變量,這個變量的值是指針(內(nèi)存地址)!
指針變量是一個變量,這個變量的值是指針(內(nèi)存地址)!
指針變量是一個變量,這個變量的值是指針(內(nèi)存地址)!
獲取指針指向的值:
只需要在指針變量錢加*號即可獲得指針變量值所對應(yīng)的數(shù)據(jù):
nameV:=*nameP
fmt.Println("nameP指針指向的值為:",nameV)//nameP指針指向的值為:微客鳥窩
修改指針指向的值:
*nameP=""http://修改指針指向的值
fmt.Println("nameP指針指向的值為:",*nameP)
fmt.Println("name變量的值為:",name)
//運行結(jié)果:
//nameP指針指向的值為:
//name變量的值為:
我們發(fā)現(xiàn)nameP指針指向的值被改變了,變量name的值也被改變了
因為變量name存儲數(shù)據(jù)的內(nèi)存就是指針nameP指向的內(nèi)存,這塊內(nèi)存被nameP修改后,變量name的值也被修改了。
通過var關(guān)鍵字直接定義的指針變量是不能進行賦值操作的,因為它的值為nil,也就是還沒有指向的內(nèi)存地址
//錯誤示例
varintP*int
*intP=10//錯誤,應(yīng)該先給分配一塊內(nèi)存,內(nèi)存地址作為變量intP的值,這個內(nèi)存就可以存放10了。
//應(yīng)該使用
varintP*int//聲明int類型的指針變量intP
intP=new(int)//給指針分配一塊內(nèi)存
*intP=66
fmt.Println(":::",intP)//:::0xc0000ac088
fmt.Println(*intP)//66
//簡短寫法
varintP:=new(int)
*intP=66
指針參數(shù)
當給一個函數(shù)使用指針作為參數(shù)的時候,就可以在函數(shù)中,通過形參改變實參的值:
funcmain(){
name:="無塵"
modify(name)
fmt.Println("name的值為:",name)
funcmodify(name*string){
*name="wucs"
//運行結(jié)果:
//name的值為:wucs
指針接收者
如果接收者類型是map、slice、channel這類引用類型,不使用指針;
如果需要修改接收者,那么需要使用指針;
如果接收者是比較大的類型,可以考慮使用指針,因為內(nèi)存拷貝廉價,所以效率高。
什么情況下使用指針
不要對map、slice、channel這類引用類型使用指針;
如果需要修改方法接收者內(nèi)部的數(shù)據(jù)或者狀態(tài)時,需要使用指針;
如果需要修改參數(shù)的值或者內(nèi)部數(shù)據(jù)時,也需要使用指針類型的參數(shù);
如果是比較大的結(jié)構(gòu)體,每次參數(shù)傳遞或者調(diào)用方法都要內(nèi)存拷貝,內(nèi)存占用多,這時候可以考慮使用指針;
像int、bool這樣的小數(shù)據(jù)類型沒必要使用指針;
如果需要并發(fā)安全,則盡可能地不要使用指針,使用指針一定要保證并發(fā)安全;
指針最好不要嵌套,也就是不要使用一個指向指針的指針,雖然Go語言允許這么做,但是這會使你的代碼變得異常復雜。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中數(shù)學培訓
- 北京警察學院《Photoshop 圖像處理》2024 - 2025 學年第一學期期末試卷
- 現(xiàn)代科技導論 習題集與參考答案
- 人教版歷史試題及答案
- 水果防蟲知識培訓課件
- 養(yǎng)老護理員職業(yè)規(guī)劃培訓課件
- 《GAT 867.2-2010公安民警違法違紀案件、線索管理信息代碼 第2部分:組織處理代碼》專題研究報告
- 水電安裝工程師培訓課件
- 2026年深圳中考歷史國共關(guān)系的發(fā)展演變試卷(附答案可下載)
- 車輛保養(yǎng)知識教育課件
- 特種工安全崗前培訓課件
- 新疆維吾爾自治區(qū)普通高中2026屆高二上數(shù)學期末監(jiān)測試題含解析
- 2026屆福建省三明市第一中學高三上學期12月月考歷史試題(含答案)
- 2026年遼寧金融職業(yè)學院單招職業(yè)技能測試題庫附答案解析
- (正式版)DB51∕T 3342-2025 《爐灶用合成液體燃料經(jīng)營管理規(guī)范》
- 2026北京海淀初三上學期期末語文試卷和答案
- 2024-2025學年北京市東城區(qū)五年級(上)期末語文試題(含答案)
- 人工智能在醫(yī)療領(lǐng)域的應(yīng)用
- 2025學年度人教PEP五年級英語上冊期末模擬考試試卷(含答案含聽力原文)
- 【10篇】新部編五年級上冊語文課內(nèi)外閱讀理解專項練習題及答案
- 南京市雨花臺區(qū)醫(yī)療保險管理中心等單位2025年公開招聘編外工作人員備考題庫有完整答案詳解
評論
0/150
提交評論