My understanding is that generically the entire group of non-alphanumeric characters like *, ?, ;, #, etc. can be called punctuators. However, in an expression like
3*4
the * is specifically known as an "operator" whereas in a declaration like
int *p;
the * is not an operator but instead merely indicates that p is a pointer. Similarly the 3 additional symbols &, [], and () are not called operators when used in declarations. I know what all of these symbols mean in their various contexts, how they are pronounced, and what they do, but is there a specific name for this entire group of four symbols when used in declarations? I've always called them "attributes" for lack of anything better and I can't find anything specific in the language standards regarding a name for the group.