go调用c语言结构体,数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法

结构体和方法

一、值,指针和引用

我们现在有一段程序:

package main

import "fmt"

func main() {

// a,b 是一个值

a := 5

b := 6

fmt.Println("a的值:", a)

// 指针变量 c 存储的是变量 a 的内存地址

c := &a

fmt.Println("a的内存地址:", c)

// 指针变量不允许直接赋值,需要使用 * 获取引用

//c = 4

// 将指针变量 c 指向的内存里面的值设置为4

*c = 4

fmt.Println("a的值:", a)

// 指针变量 c 现在存储的是变量 b 的内存地址

c = &b

fmt.Println("b的内存地址:", c)

// 将指针变量 c 指向的内存里面的值设置为4

*c = 8

fmt.Println("a的值:", a)

fmt.Println("b的值:", b)

// 把指针变量 c 赋予 c1, c1 是一个引用变量,存的只是指针地址,他们两个现在是独立的了

c1 := c

fmt.Println("c的内存地址:", c)

fmt.Println("c1的内存地址:", c1)

// 将指针变量 c 指向的内存里面的值设置为4

*c = 9

fmt.Println("c指向的内存地址的值", *c)

fmt.Println("c1指向的内存地址的值", *c1)

// 指针变量 c 现在存储的是变量 a 的内存地址,但 c1 还是不变

c = &a

fmt.Println("c的内存地址:", c)

fmt.Println("c1的内存地址:", c1)

}

打印出:

a的值: 5

a的内存地址: 0xc000016070

a的值: 4

b的内存地址: 0xc00001607

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值