企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 声明指针 >var 变量名 *int ``` package main import "fmt" func main() { var p *int fmt.Println(p) // <nil> // 由于指针未指向任何地址,故打印<nil> } ``` 一般情况下,指针的变量类型为*int,变量名为p (point)或者 ptr ### 获取变量地址 > **使用操作符 "&" 获取变量地址,取得地址的值赋给指针变量** ``` package main import "fmt" func main() { num := 1 var p *int p = &num fmt.Println("num变量的地址为:", p, &num) // num变量的地址为: 0xc000014088 0xc000014088 fmt.Println("指针变量p的地址为:", &p) // 指针变量p的地址为: 0xc000006028 } ``` ### 获取指针指向的内容 > **使用操作符"*",获取指针所指向地址值的内容** ``` package main import "fmt" func main() { num := 1 var p *int p = &num fmt.Println("num变量的地址为:", p, &num) // num变量的地址为: 0xc000014088 0xc000014088 fmt.Println("指针变量p的地址为:", &p) // 指针变量p的地址为: 0xc000006028 fmt.Println("指针变量p所指向的内容:", *p) // 指针变量p所指向的内容: 1 } ``` 如果指针未指向任何地址,输出地址内容就会报错 ### 使用指针修改值 > ***变量名 = 修改值** ``` package main import "fmt" func main() { num := new(int) var p *int p = &num fmt.Println("num变量的地址为:", p, &num) // num变量的地址为: 0xc000014088 0xc000014088 fmt.Println("指针变量p的地址为:", &p) // 指针p的地址为: 0xc000006028 fmt.Println("指针变量p所指向的内容:", *p) // 指针变量p所指向的内容: 1 *p = 10 fmt.Println("指针变量p所指向的内容:", *p, num) // 指针变量p所指向的内容: 10 10 } ``` ``` package main import "fmt" func main() { var p *int p = new(int) fmt.Println(p, *p) // 0xc000014088 0 *p = 10 fmt.Println(p, *p) // 0xc000014088 10 } ```