当前位置:网站首页>【愚公系列】2022年07月 Go教学课程 013-常量、指针
【愚公系列】2022年07月 Go教学课程 013-常量、指针
2022-07-31 00:19:00 【华为云】
一、常量
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)}
- &, 取地址操作符,功能是取出变量在内存中的地址;
- *,取值操作符,功能是取出地址指向的实际值。
边栏推荐
猜你喜欢

firewalld

Restricted character bypass

xss绕过:prompt(1)

Steven Giesel recently published a 5-part series documenting his first experience building an application with the Uno Platform.

go mode tidy出现报错go warning “all“ matched no packages

天空云变化案例

.NET Cross-Platform Application Development Hands-on Tutorial | Build a Kanban-style Todo App with Uno Platform

封装、获取系统用户信息、角色及权限控制

【深入浅出玩转FPGA学习15----------时序分析基础】
![45. [Application of list linked list]](/img/7a/ca026cafeceffd2daee68fe66e1882.png)
45. [Application of list linked list]
随机推荐
Meeting OA project pending meeting, all meeting functions
web漏洞之需要准备的工作
Oracle一个诡异的临时表空间不足的问题
Axure轮播图
h264和h265解码上的区别
【VisDrone数据集】YOLOV4训练VisDrone数据集步骤与结果
状态机动态规划之股票问题总结
An easy-to-use interface testing tools - the Postman
Word文件损坏如何修复
封装、获取系统用户信息、角色及权限控制
After writing business code for many years, I found these 11 doorways, which only experts know
The first level must project independently
Learn Scope from a Compilation Perspective!
机器学习1一回归模型(二)
C语言力扣第48题之旋转图像。辅助数组
Linux 部署mysql 5.7全程跟踪 完整步骤 django部署
Shell编程条件语句 test命令 整数值,字符串比较 逻辑测试 文件测试
GO GOPROXY代理设置
寄存器(汇编语言)
The difference between h264 and h265 decoding