###
在我的理解中 go * 和c中的*一样,代表指针, &是在传递对象时候只传递指针
如果一个变量本身就是一个指针类型的话, 应该是不需要加 & 前缀的
如图:
如果在message本身就是一个指针类型的话,为什么要加&前缀呢 ?
![image.png](https://static.studygolang.com/171010/9d1aad866cc4c8ec9784e1ec247f69dd.png)
*Message本就是一个指针类型吧 不加&,程序也是可以正常编译运行的 ,但是执行的时候就会报错. 不过我想我大概理解为什么了. 谢谢你
#5
更多评论
和C的指针是一样的用法,Unmarshal到message所指的对象,不加&也可以,但前提是message确实指着某个Message对象;如果加了&,Unmarshal会创建一个Message对象并将地址赋值给message
#2