Indeed. They are pointers. You just cannot do pointer arithmetic on them.
In declaration the '' goes on the left though. In general Go's syntax inverts the declaration w.r.t C/C++:
a int vs int a
b *int vs int* b
type X int vs typedef int X
NOTE: you can do unsafe pointer arithmetic using the "unsafe" package.
You can convert any pointer to a unsafe.Pointer and then you can convert it to a uintptr.
There are also library functions designed to work with that, for example atomic.AddUintptr that atomically adds an offset to a pointer.
Although not intended as general use, it can be useful in low level library code. Otherwise you can do pretty much everything using slices.
In declaration the '' goes on the left though. In general Go's syntax inverts the declaration w.r.t C/C++:
NOTE: you can do unsafe pointer arithmetic using the "unsafe" package. You can convert any pointer to a unsafe.Pointer and then you can convert it to a uintptr.There are also library functions designed to work with that, for example atomic.AddUintptr that atomically adds an offset to a pointer.
Although not intended as general use, it can be useful in low level library code. Otherwise you can do pretty much everything using slices.