Go拥有自己的指针,一个指针保留了值的内存地址 使用 & 操作符可以引出指针的值,如果指针被改变值,则该指针所绑定的值必然被改变,因为所绑定的值和指针指向的是同一个地址 指针的赋值依靠 * 操作符 ,比如: 和c 语言不同, go语言没有指针运算 实战1: 如果指针被改变值,则该指针所绑定的值必然被改变,因为所绑定的值和指针指向的是同一个地址 结构是一个域的集合,这里的域可以表示为很多变量, 结构采用关键字struct表示 使用结构体内的成员,需要用到符号 .   ,先给结构体赋值,然后再使用 . 操作符 结构体的成员可以被指针指向 结构体可以用 名字:变量 的方式进行赋值 数组的表达式为: 声明一个类型为整型,数组名为a,数组长度为10的数组 数组的长度是其类型的一部分,所以数组的尺寸不能被重置,这使数组看起来似乎是有限的,但是不要担心,Go提供了一个使用数组更快捷的方法 数组可以正常赋值,随意改变数组数据与长度 运行后,可见结果报错,被设置了固定长度的数组无法改变其长度,否则会报错文章目录
(一)指针 (Pointer)
 比如:*P 是指向 P这个变量的值,如果一个指针定义声明了但是没有被赋值,没有指向,则它的值可以写为 nil(1)指针的定义
var p *int (2)指针的地址
fmt.Printf(&p) (3)指针的赋值
*p = 12 (4)指针的操作——实战演示
package main  import "fmt" func main() { // 使用变量地址给指针赋值  x := 12  p := &x  fmt.Println("指针p的值为:", *p)  fmt.Println("指针p的地址为:", &p) // 定义指针并赋值 var t *int  t = &x  fmt.Println("指针t的值为:", *t) } 
 实战2:package main  import "fmt" func main() { var p *int var y int = 1024  p = &y  fmt.Println("指针p被改变前的值为:", *p)  fmt.Println("指针p被改变前,y值为:", y) *p += 1024  fmt.Println("指针p被修改后的值为:", *p)  fmt.Println("指针p被改变前,y值为:", y) } 
 
(二)结构(struct)
package main import "fmt" type Vertex struct {  x int  y int } func main(){  fmt.Println(Vertex{1,2}) } 
 
(三)结构体的使用
package main import "fmt" type zoo struct{  Monkey string  bird string  elephant string } func main(){  zoo {"金丝猴","火烈鸟","PHP"}  fmt.Println(zoo.Monkey , zoo.bird , zoo.elephant) } 
 
(四)指向结构体的指针
 使用指针 p 调用结构体的成员x的写法为 (*p).x , 还可以写为 p.xpackage main  import "fmt" type Vertex struct {  x int  y int } func main() {  v := Vertex{1, 2}  p := &v  p.x = 1e12  fmt.Println("结构体v为:", v)  fmt.Println("p指针为:", p) } 
 
(五)结构体的各种赋值
package main  import "fmt" type Vertex struct {  x, y int } func main() { var (   v1 = Vertex{1, 10} //给Vertex结构体的全体成员赋值   v2 = Vertex{} //结构体成员全部被赋值为0   v3 = Vertex{y: 10} //只给y赋值为10,x默认为0   p  = &Vertex{99, 1} //赋值后被指针指向 )   fmt.Println(p, v1, v2, v3) //输出结果 } 
 
(六)数组(array)
var 数组名[数组数量] 类型var a[10] int (1)数组操作的演示
package main import "fmt" func main(){ var a[10] int  a[0] = 10  a[8] = 20  fmt.Println("输出指定下标的数组>>>  ",a[0],a[8]) //输出指定下标的数组  fmt.Println("输出整个数组>>> ",a) //输出整个数组 for n :=0 ; n<10 ; n++ {   a[n] = n*11 }  fmt.Println("数组被遍历赋值后,输出整个数组>>> ",a) //数组被遍历赋值后,输出整个数组 } 
(2)未指定数组长度时的赋值操作
package main  import "fmt" func main() { //数组未设置具体长度时  b := []int{1, 3123, 123, 123, 12, 3}  fmt.Println(b) //对上面未设置具体长度的数组b动态添加一位新的成员时  b = []int{45, 45, 45, 55, 45, 78, 99}  fmt.Println(b) } 
 
(3)指定数组长度后的赋值操作
package main  import "fmt" func main() {  a := [9]int{1, 2, 3, 45, 12, 32, 1, 32, 12}  fmt.Println(a)  a = [10]int{1, 2, 3, 45, 12, 32, 1, 32, 12, 999}  fmt.Println(a) } 
 
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
 官方软件产品操作指南 (170)
官方软件产品操作指南 (170)