變數 型別 指標

2022-09-28 22:33:22 字數 2051 閱讀 4048

目錄:

1:世界開始之初-變數

2:go 語言中的基礎型別

3:go自增語法、指標

4:go不能使用的語法

第1種:先定義變數,再賦值 。 var 變數名 資料型別

var name string

name = "cfp"

fmt.println("name:", name) //name: cfp

fmt.printf("name:%s\n", name) //name:cfp

第2種:定義時直接賦值。var 變數名 = 「man」

func main()
第3種:定義直接賦值,使用自動推導(最常用)

func main()
第4種:平行賦值 (同時定義兩個變數)

i,j := 10,20

i,j:=j,i (不借助中間變數,直接對換兩個變數的值)

要知道如果要定義全部變數的話,必須使用var 關鍵字,不能用我們常用的那種賦值

go語言是靜態型別語言,因此變數(variable)是有明確型別的,編譯器也會檢查變數型別的正確性。

計算機中資料儲存的最小單位為bit(位),0或者1

byte:計算機中資料的基本單元,1位元組=8bit,資料在計算機中儲存或者計算,至少為1個位元組

有符號和無符號的區別:int8 範圍 -128-127,uint8 範圍:0-255

當乙個變數被宣告之後,系統自動賦予它該型別的零值:

int 為 0float 為 0.0bool 為 falsestring 為空字串指標為 nil

所有的內存在 go 中都是經過初始化的。

package main

import "fmt"

var age int

func main()

3.1:自增

c裡面有:i++ i-- ++i --i

go裡面只有:i++ i-- 而且必須單獨寫一行

3.2:指標

go跟c一樣裡面也有指標。

定義乙個空指標:

go語言在使用指標時,會使用內部的垃圾**機制(gc :garbage collector)不需要開發人員手動釋放記憶體。

c語言不允許返回棧上的指標,但是go語言可以返回棧上的指標【因為他有垃圾**機制】,

程式會在編譯的時候就確定了變數的分配位置。編譯的時候,如果發現有需要的話,會將變數分配到堆上。(後面我們會講到記憶體逃逸)

package main

import "fmt"

func main()

//在c語言裡面,我們在方法裡定義了乙個變數city,如果函式執行完了,是會釋放掉這個變數。

//那麼就會返回乙個空指標回去!

//但是在go裡面,讓不會返回空指標,他會儲存這個變數將棧上的指標進行返回(沒用東西都是放到棧上)

func test() *string

變數、指標和位址三者的關係是,每個變數都擁有位址,指標的值就是位址當使用&操作符對普通變數進行取位址操作並得到變數的指標後,可以對指標使用*操作符,也就是指標取值

func main()
3.3:空指標

指標變數 指標強制型別轉換

一 什麼是指標變數?指標變數,實質上是乙個變數,只是它是存放位址的變數,指標的型別代表的是它所指向的變數的型別,因此就有了指向整形 字元型 浮點型等其他型別的指標。但實際上所有型別的指標變數存放的都是int型的位址 16位的編譯系統,int是2位元組 32的編譯系統,int是4位元組 本質上,不同型...

Object C 指標變數強制型別轉換

除了id型別外,指標變數只能呼叫它編譯時型別的方法。而不能呼叫它執行時型別的方法,即使它實際所指向的物件包含該方法。如果需要讓這個指標變數呼叫執行時型別的方法,就需要強制型別轉換。import intmain intargc,const char argv return0 2014 11 29 15...

指標型別與動態變數

一 概念 指標型別 指示記憶體位址的資料型別 指標變數 存放記憶體位址的變數 簡稱 指標 二 指標變數的定義 1.格式 指標的型別 變數名 是指標說明符 如 int p int a 100 char s 2.結構體指標 如 struct node p 三 指標運算子 2個 1.取位址 後是普通變數 ...