1.指針的定義,使用,賦值
package main
import "fmt"
func main() {
var i int64 = 1
fmt.Println("i地址:", &i)
var ptr *int64 = &i
fmt.Printf("ptr的地址:%v; ptr的值%v\n", ptr, *ptr)
i = 10
fmt.Printf("ptr的地址:%v; ptr的值%v; i的地址:%v; i的值:%v\n", ptr, *ptr, &i, i)
*ptr = 100
fmt.Printf("ptr的地址:%v; ptr的值%v; i的地址:%v; i的值:%v\n", ptr, *ptr, &i, i)
}
輸出結果
i地址: 0xc000014070
ptr的地址:0xc000014070; ptr的值1
ptr的地址:0xc000014070; ptr的值10; i的地址:0xc000014070; i的值:10
ptr的地址:0xc000014070; ptr的值100; i的地址:0xc000014070; i的值:100
2.算術運算符
假定 A 值爲 10,B 值爲 20
運算符 |
描述 |
示例 |
+ |
相加 |
A + B 輸出結果 30 |
- |
相減 |
A - B 輸出結果 -10 |
* |
相乘 |
A * B 輸出結果 200 |
/ |
相除 |
B / A 輸出結果 2 |
% |
求餘 |
B % A 輸出結果 0 |
++ |
自增 |
A++ 輸出結果 11 |
– |
自減 |
A-- 輸出結果 9 |
3.關係運算符
假定 A 值爲 10,B 值爲 20
運算符 |
描述 |
示例 |
== |
檢查兩個值是否相等,如果相等返回 True 否則返回 False。 |
(A == B) 爲 False |
!= |
檢查兩個值是否不相等,如果不相等返回 True 否則返回 False。 |
(A != B) 爲 True |
> |
檢查左邊值是否大於右邊值,如果是返回 True 否則返回 False。 |
(A > B) 爲 False |
< |
檢查左邊值是否小於右邊值,如果是返回 True 否則返回 False。 |
(A < B) 爲 True |
>= |
檢查左邊值是否大於等於右邊值,如果是返回 True 否則返回 False。 |
(A >= B) 爲 False |
<= |
檢查左邊值是否小於等於右邊值,如果是返回 True 否則返回 False。 |
(A <= B) 爲 True |
4.邏輯運算符
假定 A 值爲 True,B 值爲 False。
運算符 |
描述 |
示例 |
&& |
邏輯 AND 運算符。 如果兩邊的操作數都是 True,則條件 True,否則爲 False |
(A && B) 爲 False |
|| |
邏輯 OR 運算符。 如果兩邊的操作數有一個 True,則條件 True,否則爲 False。 |
(A || B) 爲 True |
! |
邏輯 NOT 運算符。 如果條件爲 True,則邏輯 NOT 條件 False,否則爲 True。 |
!(A && B) 爲 True |
5.賦值運算符
運算符 |
描述 |
示例 |
= |
簡單的賦值運算符,將一個表達式的值賦給一個左值 |
C = A + B 將 A + B 表達式結果賦值給 C |
+= |
相加後再賦值 |
C += A 等於 C = C + A |
-= |
相減後再賦值 |
C -= A 等於 C = C - A |
*= |
相乘後再賦值 |
C *= A 等於 C = C * A |
/= |
相除後再賦值 |
C /= A 等於 C = C / A |
%= |
求餘後再賦值 |
C %= A 等於 C = C % A |
6.其他運算符
運算符 |
描述 |
示例 |
& |
返回變量存儲地址 |
&a; 將給出變量的實際地址 |
* |
指針變量 |
*a; 是一個指針指向變量的值 |