Can someone explain the difference between & and * in GO lang .. and provide examples of when & and * would be used to illustrate the difference? From what I have read, they both relate to accessing a variables memory location however i'm not sure when to use & or *.
6条回答 默认 最新
- duanping6698 2015-10-21 02:18关注
Here is a very simple example, that illustrates how
&
and*
are used. Note that*
can be used for two different things 1) to declare a variable to be a pointer 2) to dereference a pointer.package main import "fmt" func main() { b := 6 var b_ptr *int // *int is used delcare variable // b_ptr to be a pointer to an int b_ptr = &b // b_ptr is assigned value that is the address // of where variable b is stored // Shorhand for the above two lines is: // b_ptr := &b fmt.Printf("address of b_ptr: %p ", b_ptr) // We can use *b_ptr get the value that is stored // at address b_ptr, or dereference the pointer fmt.Printf("value stored at b_ptr: %d ", *b_ptr) }
Result:
address of b_ptr: 0xc82007c1f0 value stored at b_ptr: 6
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报