$\require{cancel}$
int x;
float pi{3.14};
char word[10];
// not initialized, definitely don't do.
int * iPtr; // a pointer to an int, or an array of ints.
BodyPartT * parts; // a pointer to a BodyPartT or an arry of them;
FooT * fooPtr;
nullptr
0, NULL and nullptr
NULL is from c, probably a defined constant.
nullptr is the modern, accepted version.
int * iPtr = nullptr; // a pointer to an int, or an array of ints.
BodyPartT * parts{nullptr}; // a pointer to a BodyPartT or an arry of them;
FooT * fooPtr{nullptr};
0, NULL or nullptr
&identifier returns a pointer to that variable.
*ptr dereferences or follows the pointer.
0, NULL or nullptr
// this is not real, but ...
assume T ary[n];
T operator [] (T * base_address; size_t index) {
return T + size_of(*T) * index
}
type * & parameter
const int * ptr makes a pointer to a constant int.
int const * ptr
int * const ptr makes the pointer constant.