Go
1func main() { 2 3 var a *string = new(string) 4 fmt.Print("<") 5 fmt.Print(a) 6 fmt.Println(">") 7 var fp *os.File = new(os.File) 8 fmt.Print("<") 9 fmt.Print(fp) 10 fmt.Println(">") 11 var reg *regexp.Regexp = new(regexp.Regexp) 12 fmt.Print("<") 13 fmt.Print(reg) 14 fmt.Println(">") 15} 16 17
上記のような変数を宣言し、newキーワードでメモリ確保を実行して、変数にnewで確保したメモリの
アドレスを取得使用としましたが
実行結果は
Go
1<0xc0000402d0> => *string 2<&{<nil>}> => *os.File 3<> => *regexp.Regexp 4
上記のようになりました
*string型の変数の中身がポインタアドレスなのは期待どおりなのですが、
それ以降の2つはなぜ、変数にポインタアドレスが保持されていないのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。