首頁>技術>

指標的指標

如果一個指標變數存放的又是另一個指標變數的地址,則稱這個指標變數為指向指標的指標變數。

var ptr **int;COPY

package main

import "fmt"

func main() {

var a int    var ptr *int    var pptr **int

a = 3000

/* 指標 ptr 地址 */    ptr = &a

/* 指向指標 ptr 地址 */    pptr = &ptr

/* 獲取 pptr 的值 */    fmt.Printf("變數 a = %d\n", a )    fmt.Printf("指標變數 *ptr = %d\n", *ptr )    fmt.Printf("指向指標的指標變數 **pptr = %d\n", **pptr) }COPY

結果

變數 a = 3000 指標變數 *ptr = 3000 指向指標的指標變數 **pptr = 3000COPY

指標作為函式引數

package main

import "fmt"

func main() {    /* 定義區域性變數 */    var a int = 100    var b int= 200

fmt.Printf("交換前 a 的值 : %d\n", a )    fmt.Printf("交換前 b 的值 : %d\n", b )

/* 呼叫函式用於交換值    * &a 指向 a 變數的地址    * &b 指向 b 變數的地址    */    swap(&a, &b);

fmt.Printf("交換後 a 的值 : %d\n", a )    fmt.Printf("交換後 b 的值 : %d\n", b ) }

func swap(x *int, y *int) {    var temp int    temp = *x    /* 儲存 x 地址的值 */    *x = *y      /* 將 y 賦值給 x */    *y = temp    /* 將 temp 賦值給 y */ }COPY

結果

交換前 a 的值 : 100 交換前 b 的值 : 200 交換後 a 的值 : 200 交換後 b 的值 : 100

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • golang2021資料格式(93)獲取slice與map長度