*和的區(qū)別 : 是取地址符號(hào) , 即取得某個(gè)變量的地址 , 如 ; a*是指針運(yùn)算符 , 可以表示一個(gè)變量是指針類型 , 也可以表示一個(gè)指針變量所指向的存儲(chǔ)單元 , 也就是這個(gè)地址所存儲(chǔ)的值 . 從代碼中驗(yàn)證 :
先構(gòu)建一個(gè)Rect類型 :
1. 是取地址符號(hào), 取到Rect類型對(duì)象的地址
2. *可以表示一個(gè)變量是指針類型(r是一個(gè)指針變量):
3.*也可以表示指針類型變量所指向的存儲(chǔ)單元 ,也就是這個(gè)地址所指向的值
4.查看這個(gè)指針變量的地址 , 基本數(shù)據(jù)類型直接打印地址
![](/d/20211017/3d2bf5704b10986dc04ccdc052c98e9e.gif)
摘自其他博客 :
經(jīng)常會(huì)見到: p . *p , p 三個(gè)符號(hào)
p是一個(gè)指針變量的名字,表示此指針變量指向的內(nèi)存地址,如果使用%p來輸出的話,它將是一個(gè)16進(jìn)制數(shù)。而*p表示此指針指向的內(nèi)存地址中存放的內(nèi)容,一般是一個(gè)和指針類型一致的變量或者常量。
而我們知道,是取地址運(yùn)算符,p就是取指針p的地址。等會(huì),怎么又來了個(gè)地址,它到底和p有什么區(qū)別?區(qū)別在于,指針p同時(shí)也是個(gè)變量,既然是變量,編譯器肯定要為其分配內(nèi)存地址,就像程序中定義了一個(gè)int型的變量i,編譯器要為其分配一塊內(nèi)存空間一樣。而p就表示編譯器為變量p分配的內(nèi)存地址,而因?yàn)閜是一個(gè)指針變量,這種特殊的身份注定了它要指向另外一個(gè)內(nèi)存地址,程序員按照程序的需要讓它指向一個(gè)內(nèi)存地址,這個(gè)它指向的內(nèi)存地址就用p表示。而且,p指向的地址中的內(nèi)容就用*p表示。
到此這篇關(guān)于從go語(yǔ)言中找和*區(qū)別詳解的文章就介紹到這了,更多相關(guān)go語(yǔ)言和*區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Go語(yǔ)言中結(jié)構(gòu)體方法副本傳參與指針傳參的區(qū)別介紹
- Go語(yǔ)言中的指針運(yùn)算實(shí)例分析
- Go語(yǔ)言指針訪問結(jié)構(gòu)體的方法
- Go語(yǔ)言的方法接受者類型用值類型還是指針類型?