数据类型-指针

本文详细解析了Go语言中的指针定义、创建过程,探讨了指针的类型标识,展示了指针的零值特性,并特别指出Go不支持某些指针运算。通过实例演示了如何使用指针操作变量及其在内存地址上的体现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义

指针也是一种类型,也可以创建变量,称之为指针变量。指针变量的类型为 *Type,该指针指向一个 Type 类型的变量。指针变量最大的特点就是存储的某个实际变量的内存地址,通过记录某个变量的地址,从而间接的操作该变量。

创建指针

func main() {
	// 通过定义普通变量获取指针
	x := "嘿嘿嘿嘿嘿"
	ptr := &x
	fmt.Println(ptr)

	//new 先创建好指针再分配内存
	ptr2 := new(string)
	*ptr2 = "哈哈哈哈哈哈哈哈哈"
	fmt.Println(ptr2)
	fmt.Println(*ptr2)

	//先声明指针变量 再从其他变量获取内存地址指针变量
	x2 := "hjkhkjfhkjhjk"
	var p *string
	p = &x2
	fmt.Println(p)
	/**
	& 可以从一个变量中取得内存地址
	* 赋值的左边,该指针指向的变量赋值的右边,赋值的右边 指一个指针变量中获取变量值(解引用)
	 */
}

指针的类型

func pointType(){
	mint := 1
	mbool := false
	mfloat := 2.3
	mstring := "111"
	fmt.Printf("type of &mint is : %T\n",&mint)
	fmt.Printf("type of &mbool is : %T\n",&mbool)
	fmt.Printf("type of &mfloat is : %T\n",&mfloat)
	fmt.Printf("type of &mstring is : %T\n",&mstring)
}

在这里插入图片描述

指针的零值

func zeaoPointer(){
	x := "hhhhhhhh"
	var ptr *string
	fmt.Println("ptr is ",ptr)
	ptr = &x
	fmt.Print("ptr is ",ptr)
}

在这里插入图片描述

Go不支持指针运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值