I understand the syntax and general semantics of pointers versus references, but how should I decide when it is more-or-less appropriate to use references or pointers in an
You properly written example should look like
void add_one(int& n) { n += 1; } void add_one(int* const n) { if (n) *n += 1; }
That's why references are preferable if possible ...