標籤:返回 應用 聲明 結果 函數調用 使用 printf ack 電腦
Go語言指標
Go語言中指標是很容易學習的,Go語言中使用指標可以更簡單的執行一些任務。我們都知道變數是一種使用方便的預留位置,用於引用電腦記憶體位址。Go語言的取地址符是 &,放到一個變數前使用就會返回相應變數的記憶體位址,以下執行個體示範了變數在記憶體中地址:
package mainimoprt "fmt"func main() { var a int = 10 fmt.Printf("變數的地址:%x\n", &a)}
以上執行個體執行的結果為:
變數的地址: 20818a220
什麼是指標
一個指標變數指向了一個值的記憶體位址,類似於變數和常量,在使用指標前需要聲明指標。指標聲明格式如下:
var var_name *var-type
var-type為指標類型,var_name為指標變數,*用於指定變數是作為一個指標,以下是有效指標聲明:
var ip *int /* 指向整形 */var fp *float32 /* 指向浮點型 */
如何使用指標
- 定義指標變數;
- 為指標變數賦值;
- 訪問指標變數中指向地址的值;
在指標類型前面加上*號(首碼)來擷取指標所指向的內容。
package mainimport "fmt"func main() { var a int= 20 /* 聲明實際變數 */ var ip *int /* 聲明指標變數 */ ip = &a /* 指標變數的儲存地址 */ fmt.Printf("a 變數的地址是: %x\n", &a ) /* 指標變數的儲存地址 */ fmt.Printf("ip 變數儲存的指標地址: %x\n", ip ) /* 使用指標訪問值 */ fmt.Printf("*ip 變數的值: %d\n", *ip )}
以上執行個體輸出結果為:
a 變數的地址是: 20818a220ip 變數儲存的指標地址: 20818a220*ip 變數的值: 20
Gonull 指標
當一個指標被定義後沒有分配到任何變數時,它的值為nil。nil指標也稱為空白指標,nil在概念上和其他語言的null、None、nil、NULL一樣,都指代零值或空值。一個指標變數通常縮寫為ptr,如下執行個體代碼所示:
package mainfunc main() { var ptr *int fmt.Printf("ptr 的值為 : %x\n", ptr )}
以上執行個體輸出結果為:
ptr 的值為 : 0
null 指標判斷:
if(ptr != nil) /* ptr 不是null 指標 */if(ptr == nil) /* ptr 是null 指標 */
Go指標更多內容
接下來我們將介紹Go語言中更多的指標應用:
| 內容 |
描述 |
| Go指標數組 |
可以定義一個指標數組來儲存地址 |
| Go指向指標的指標 |
Go支援指向指標的指標 |
| Go向函數傳遞指標參數 |
通過引用或地址傳參,在函數調用時可以改變其值 |
Go語言【第十篇】:Go資料結構之:指標