运算符补充
一、其他运算符
| 运算符 | 术语 | 示例 | 说明 |
|---|---|---|---|
| & | 取地址运算符 | &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 | || |
当然,你可以通过使用括号来临时提升某个表达式的整体运算优先级。
