运算符补充
一、其他运算符
运算符 | 术语 | 示例 | 说明 |
---|---|---|---|
& | 取地址运算符 | &a | 变量a的地址 |
* | 取值运算符 | *a | 指针变量a所指向内存的值 |
1. &
取址符,就像变量刚创建出来就会放在内存里面,我们用&就能查到它在内存中的位置例如:
var a int =5
fmt.printf("%p\n",&a)//就能打印出内存地址了
2. *
就是到内存中把这个变量的值给取出来。
var a int =5
fmt.printf("%d\n",*&a) //为什么要加&号呢?首先我们要找到a变量在内存中的地址
二、运算符优先级
在Go语言中,一元运算符拥有最高的优先级,二元运算符的运算方向均是从左至右。
下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:
优先级 | 运算符 |
---|---|
7 | **^ ! ** |
6 | * / % <<>>& &^ |
5 | + - | ^ |
4 | == != < < = >= > |
3 | < - |
2 | && |
1 | || |
当然,你可以通过使用括号来临时提升某个表达式的整体运算优先级。