golang-指针类型

Python011

golang-指针类型,第1张

tips: *号,可以指向指针类型内存地址上的值,&号,可以获取值类型的内存地址

每一个变量都有内存地址,可以通过变量来操作内存地址中的值,即内存的大小

go语言中获取变量的内存地址方法:通过 & 符号可以获取变量的地址

定义:普通变量存储的是对应类型的值,这些类型就叫值类型

变量b,在内存中的地址为:0x1040a124,在这个内存地址上存储的值为:156

定义:指针类型的变量存储的是⼀个地址,所以⼜叫指针类型或引⽤类型

b 是值类型,它指向的是内存地址上的值

a是指针类型,它指向的是b的内存地址

指针类型定义,语法: var 变量名 *类型

指针类型在定义完成后,默认为空地址,即空指针(nil)

在定义好指针变量后,可以通过***** 符号可以获取指针变量指向的变量

在这里的 *a 等价于 b,通过修改 *a ,最终修改的是值类型b的值

这里a,d是值类型,b,c是指针类型

d就相当于把a内存地址上值,在内存中从新开辟了一块空间存储,d和a互不影响

b,c相当于指向了a的内存地址,当使用*号引用出内存地址上的变量上,修改值得,a的值也会跟着改变

1.所谓的指针,就是java中的对象的引用。比如String s这个s就是指针。

2.所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。

3.所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x)那么就会产生空指针异常。