首页 > 其他分享 >golang中 &和*的区别

golang中 &和*的区别

时间:2025-01-12 09:01:22浏览次数:1  
标签:name 区别 fmt golang num Student main 指针

golang中 &和*的区别

  1. & 用于获取地址

  2. *
    用于声明时,就是声明指针类型,
    用于解引用时,就是解引用指针。

  • & 是取地址操作符,用于获取变量的内存地址。例如:
package main

import "fmt"

func main() {
    var num int = 10
    // 获取 num 的地址并赋值给 p
    p := &num  
    fmt.Printf("num 的地址是:%p\n", p)
}
  • * 有两种主要用途:

    • 当用于声明变量时,如 *Student,表示定义一个指向 Student 结构体的指针类型。例如:
package main

import "fmt"

type Student struct {
    name string
    age  int
}

func main() {
    // 创建一个 Student 结构体实例
    s := Student{name: "Alice", age: 20}
    // 创建一个指向 Student 结构体的指针
    var ps *Student = &s  
    fmt.Printf("ps 指向的 Student 实例的 name 字段值为:%s\n", ps.name)
}
  • 当用于指针解引用时,* 可以获取指针所指向的值。例如:
package main

import "fmt"

func main() {
    var num int = 10
    p := &num
    // 解引用指针 p,获取其指向的值并修改
    *p = 20  
    fmt.Println(num) 
}

标签:name,区别,fmt,golang,num,Student,main,指针
From: https://www.cnblogs.com/zhuoss/p/18666334

相关文章

  • golang 函数和方法的区别
    golang函数和方法的区别一句话总结就是,func直接函数名就是函数,否则就是方法.至于是谁的的方法,看函数前面有没有*号的指向.golang中函数第一等公民,所以以函数优先.demo\main.gopackagemainimport"fmt"//定义一个结构体typeStudentstruct{ namestring age......
  • golang 单元测试 命令行 日志打印 测试结果打印控制台
    golang单元测试命令行日志打印测试结果打印控制台test.bat@REMgotest-timeout30s-run^TestMultiPong$github.com/jergoo/go-grpc-tutorial/ping@REMgotest-timeout30s-run^TestPing$github.com/jergoo/go-grpc-tutorial/ping@REMgotest-timeout30s-......
  • 9.java中String,StringBuilder,StringBuffer 什么区别
    在Java中,String、StringBuilder和StringBuffer都是用来处理字符串的类,但它们之间有一些关键的区别,主要体现在可变性和线程安全性上。以下是它们的详细比较:1.String不可变性:String是不可变的类,也就是说,一旦创建了一个String对象,它的内容就不能再被修改。每......
  • 请说说鸿蒙和android有什么区别?
    鸿蒙与Android在前端开发方面的区别主要体现在以下几个方面:开发框架和语言:鸿蒙使用ArkTS语言,结合ArkUI声明式UI框架进行开发,提供了一套全新的组件和布局系统,更易于构建跨设备的应用。Android则主要使用Java或Kotlin语言,搭配AndroidSDK进行开发,UI布局使用XML,近年来也支持Jet......
  • 请说说在Angular中提供者,服务和工厂之间有什么区别?
    在Angular中,提供者(Provider)、服务(Service)和工厂(Factory)是三种不同的概念,它们在前端开发中的角色和功能各有特点。以下是对这三者的详细解释和区别归纳:提供者(Provider):提供者是Angular依赖注入系统的一部分,它负责定义如何创建服务或值的实例。提供者可以配置为在应用程序的不......
  • 请说说在Angular中$scope和scope有什么区别?
    在Angular中,$scope和scope的区别主要体现在概念、使用方式和上下文环境上。概念上的区别:$scope:在AngularJS(Angular1.x版本)中,$scope是一个重要的概念,它代表了一个应用数据模型的对象。在控制器中,数据模型(即$scope对象)可以把数据从控制器传递到HTML视图。$scope是一个POJO(Plai......
  • Golang——rune和byte
    本文详细介绍Golang中的两种字符类型rune和byte,介绍他们的区别,编码方式和简单的使用。文章目录`byte`类型`rune`类型UTF-8与Unicode的关系byte和rune的主要区别Go的默认编码方式遍历方式遍历`byte`遍历`rune`补充字符还原从`byte`序列还原字符串从`rune`......
  • Golang——Go语言基础知识
    本文详细介绍Go语言的基础知识,包括数据类型,深浅拷贝,编程范式,Go语言是一种静态(静态类型语言和静态语言)强类型、编译型、并发型,并具有垃圾回收功能的编程语言。文章目录1.Go语言基础知识数据类型基本数据类型基本数据类型复合数据类型深拷贝与浅拷贝浅拷贝(Shallo......
  • GIS中“裁剪”(Clip)和“掩膜”(Mask)的区别详解
    在GIS中,“裁剪”(Clip)和“掩膜”(Mask)都是空间分析中的常见操作,它们都涉及到从一个数据集中提取特定区域的数据,但两者的目的和使用方式有所不同。下面我会详细讲解它们的区别,并结合具体示例加以说明。1.裁剪(Clip)定义:裁剪操作指的是利用一个边界(通常是一个多边形)将另一个数......
  • 【Python】Python与C的区别
    文章目录语句结束符代码块表示变量声明函数定义注释格式Python的标识符数据输入input()函数语句结束符C语言C语言中每条语句必须以分号;结束。例如,inta=10;、printf("Hello,World!");。分号是语句的一部分,用于告诉编译器一条语句在哪里结束。如果忘记添......