真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語(yǔ)言漸入佳境[14]-指針-創(chuàng)新互聯(lián)

變量的地址

1
2
a :=10
fmt.Printf("a變量的地址為:%#X\n",&a)//a變量的地址為:0XC420092008

指針的聲明

1
2
//聲明
var p *int

空指針

1
2
3
if p==nil{
 fmt.Println("p為空指針")
}

通過指針獲取值

1
2
p = &a
fmt.Printf("p的類型為%T, p的值為:%v,p指向的int的值為:%v,a的值為:%d\n",p,p,*p,a)

通過指針修改值

1
2
*p = 99
fmt.Printf("p的類型為%T, p的值為:%v,p指向的int的值為:%v,a的值為:%d\n",p,p,*p,a)

完整例子1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import "fmt"

func main(){


//變量的地址
a :=10
fmt.Printf("a變量的地址為:%#X\n",&a)


//聲明
var p *int

//空指針
if p==nil{
fmt.Println("p為空指針")
}

//通過指針獲取值
p = &a
fmt.Printf("p的類型為%T, p的值為:%v,p指向的int的值為:%v,a的值為:%d\n",p,p,*p,a)


//通過指針修改值
*p = 99
fmt.Printf("p的類型為%T, p的值為:%v,p指向的int的值為:%v,a的值為:%d\n",p,p,*p,a)

}

指針作為函數(shù)參數(shù)

指針作為函數(shù)參數(shù),修改原來的值:

在曲陽(yáng)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站制作,曲陽(yáng)網(wǎng)站建設(shè)費(fèi)用合理。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package main

import "fmt"

func main() {
a := 10
fmt.Printf("1、變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)//10

b := &a
change(b)
fmt.Printf("3、change函數(shù)調(diào)用之后,變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)//20

change0(a)
fmt.Printf("5、change0函數(shù)調(diào)用之后,變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)//20

}

func change(a *int) {
fmt.Printf("2、change函數(shù)內(nèi),變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)//20
*a = 50
}

func change0(a int) {
fmt.Printf("4、change0函數(shù)內(nèi),變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)//20
a = 90
}

切片類型指針作為函數(shù)參數(shù)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import "fmt"

func main() {
a := []int{1, 2, 3, 4}
fmt.Printf("1、變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)

modify(&a)
fmt.Printf("3、調(diào)用modify函數(shù)后,變量a的內(nèi)存地址是:%p ,值為:%v \n\n", &a, a)

modify0(a)
fmt.Printf("5、調(diào)用modify0函數(shù)后,變量a的內(nèi)存地址是:%p ,值為:%v \n", &a, a)
}

func modify(arr *[]int) {
fmt.Printf("2、modify函數(shù)中參數(shù)a的內(nèi)存地址是:%p ,值為:%v \n", &arr, arr)
(*arr)[0] = 250
}

func modify0(arr []int) {
fmt.Printf("4、modify0函數(shù)中參數(shù)a的內(nèi)存地址是:%p ,值為:%v \n", &arr, arr)
arr[0] = 99
}

指針作為函數(shù)參數(shù)例子2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package main

import "fmt"

func main() {
//定義兩個(gè)局部變量
a, b := 100, 200

// 返回值的寫法實(shí)現(xiàn)數(shù)據(jù)交換
a, b = swap0(a, b)
fmt.Println("第一次交換后:" , a, b)

// 使用指針實(shí)現(xiàn)交換
swap(&a, &b)
fmt.Println("第二次交換后:" , a, b)
}

//具有返回值的慣用寫法,實(shí)現(xiàn)兩個(gè)數(shù)據(jù)的交換
func swap0(x, y int) (int, int) {
return y, x
}

//使用指針作為參數(shù)的寫法
func swap(x, y *int) {
*x, *y = *y, *x
}

指針數(shù)組

數(shù)組,數(shù)組中的元素存儲(chǔ)的都是指針。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main

import "fmt"

const COUNT int = 4

func main() {
a := [COUNT]string{"abc", "ABC", "123", "一二三"}
//查看數(shù)組的指針的類型和值
fmt.Printf("%T , %v \n", &a, &a)

//定義指針數(shù)組
var ptr [COUNT]*string
fmt.Printf("%T , %v \n", ptr, ptr)

for i := 0; i < COUNT; i++ {
// 將數(shù)組中每個(gè)元素的地址賦值給指針數(shù)組的每個(gè)元素
ptr[i] = &a[i]
}
fmt.Printf("%T , %v \n", ptr, ptr)

fmt.Println(ptr[0])

// 根據(jù)指針數(shù)組元素的每個(gè)地址獲取該地址所指向的元素的真實(shí)數(shù)值
for i:=0; i fmt.Println(*ptr[i])
}

for _,value :=range ptr {
fmt.Println(*value)
}
}

多級(jí)指針

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main
import "fmt"

func main() {
var a int
var ptr *int
var pptr **int

a = 123

// 為指針賦值
ptr = &a
fmt.Println("ptr:" , ptr)

//為pptr賦值
pptr = &ptr
fmt.Println("pptr" , pptr)

//獲取指針對(duì)應(yīng)的值
fmt.Printf("變量 a = %d \n" , a)
fmt.Printf("指針變量 *ptr = %d \n" , *ptr)
fmt.Printf("指向到指針的變量 **pptr = %d \n" ,**pptr)
}
  • 本文鏈接: https://dreamerjonson.com/2018/11/20/golang-14-pointer/

  • 版權(quán)聲明:本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!

go語(yǔ)言漸入佳境[14]-指針

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


標(biāo)題名稱:go語(yǔ)言漸入佳境[14]-指針-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/jcsss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部