当前位置:网站首页>【Yugong Series】July 2022 Go Teaching Course 013-Constants, Pointers
【Yugong Series】July 2022 Go Teaching Course 013-Constants, Pointers
2022-07-31 00:23:00 【HUAWEI CLOUD】
一、常量
1.常量的定义
常量是一个简单值的标识符,在程序运行时,不会被修改的量.
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型.
常量的定义格式:
const identifier [type] = value你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型.
定义一个 Go 语言常量非常简单,它和变量的声明方式类似,将 var 关键字替换成 const 即可,代码如下:
const pi = 3.141592const name = "愚公搬代码"2.常量的使用
package mainimport ( "fmt")const ( pi = 3.141592 name = "愚公搬代码")func main() { fmt.Println(pi, name)}
二、指针
1.指针的定义
在计算机中,所有的数据都是存放在存储器中的,不同的数据类型占有的内存空间的大小各不相同.内存是以字节为单位的连续编址空间,每一个字节单元对应着一个独一的编号,这个编号被称为内存单元的地址.比如:int 类型占 4 个字节,char 类型占 1 个字节等.系统在内存中,为变量分配存储空间的首个字节单元的地址,称之为该变量的地址.地址用来标识每一个存储单元,方便用户对存储单元中的数据进行正确的访问.在高级语言中地址形象地称为指针.
2.指针的使用
每个变量在程序运行时都有一个地址,这个地址代表变量在内存中的位置.
Go 语言中,通过 & 操作符对变量进行 “取地址” 操作,格式如下:
p := &v // v 的类型为 T上面代码中,v 表示被取地址的变量,取到的地址用变量 p 进行接收, p 的类型为 “*T”, 称为 T 的指针类型.*代表指针.
案例如下:
package mainimport "fmt"func main() { var name string = "愚公搬代码" // 获取字符串的指针, p 类型为*string p := &name // 打印变量 p 的类型 fmt.Printf("p type: %T\n", p) // 打印变量 p 的指针地址 fmt.Printf("address: %p\n", p) // 通过 * 对指针进行取值操作 value := *p // 取值后的类型 fmt.Printf("value type: %T\n", value) // 指针取值后指向变量的值 fmt.Printf("value type: %s\n", value)}
- &, 取地址操作符,功能是取出变量在内存中的地址;
- *,取值操作符,功能是取出地址指向的实际值.
边栏推荐
- 【Yugong Series】July 2022 Go Teaching Course 019-For Circular Structure
- joiplay模拟器不支持此游戏类型怎么解决
- 【愚公系列】2022年07月 Go教学课程 015-运算符之赋值运算符和关系运算符
- ABC 261 F - Sorting Color Balls(逆序对)
- .NET 跨平台应用开发动手教程 |用 Uno Platform 构建一个 Kanban-style Todo App
- encrypted transmission process
- How to ensure the consistency of database and cache data?
- 牛客网刷题训练(四)
- In-depth understanding of the auto-increment operator from two error-prone written test questions
- How to use joiplay emulator
猜你喜欢
随机推荐
【愚公系列】2022年07月 Go教学课程 015-运算符之赋值运算符和关系运算符
【Yugong Series】July 2022 Go Teaching Course 019-For Circular Structure
joiplay模拟器报错如何解决
xss绕过:prompt(1)
MySQL table design for message queue to store message data
Shell编程之条件语句
web漏洞之需要准备的工作
h264和h265解码上的区别
会议OA项目待开会议、所有会议功能
正则表达式密码策略与正则回溯机制绕过
After writing business code for many years, I found these 11 doorways, which only experts know
C语言力扣第48题之旋转图像。辅助数组
Word文件损坏如何修复
DNS解析过程【访问网站】
[Tang Yudi Deep Learning-3D Point Cloud Combat Series] Study Notes
.NET 跨平台应用开发动手教程 |用 Uno Platform 构建一个 Kanban-style Todo App
Summary of the stock problem of state machine dynamic programming
【Yugong Series】July 2022 Go Teaching Course 017-IF of Branch Structure
A Brief Talk About MPI
GO GOPROXY代理设置








