Are unsafe.Pointer()s reference counted and thus protected from being garbage collected?
As in, if I have a string, it exists while it's in scope, if I have a *string, the string exists while the pointer is in scope, but if I have a unsafe.Pointer(&s) (where s is a string or whatever) will s stay in scope as long as the unsafe pointer is still pointing to it?
I found googles that say once you cast to an uintptr it is definitely not, because uintptr is just an int, but I can't find anything definitive one way or another about unsafe.Pointer() probably because the answer is obvious, but I'm not absolutely sure, because I can't find anything that explains it exactly.
and if I cast that unsafe.Pointer to some other pointer type, I assume that doesn't change things?