User:D41D8CD98F/declarators

A declarator is a part of a simple declaration. Each declarator contains exactly one identifier that is to be declared. The type of the identifier depends on both the and its declarator.

A declarator that is not part of another declarator is called a full declarator.

A declarator has an associated derived-declarator-type-list which, when followed by the type specified by the, designates a certain kind of compound type.

Let T be the type specified by the, the identifier declared in a full declarator has type "derived-declarator-type-list T".

A declarator has one of the following forms:

@1@ Pointer declarator. The derived-declarator-type-list is "d1 pointer to", where d1 is the derived-declarator-type-list of. @2@ Pointer-to-member declarator. The derived-declarator-type-list is "d1 pointer to member of class  of" where d1 is the derived-declarator-type-list of. @3@ Lvalue reference declarator. The derived-declarator-type-list is "d1 lvalue reference to" where d1 is the derived-declarator-type-list of. @4@ Rvalue reference declarator. The derived-declarator-type-list is "d1 rvalue reference to" where d1 is the derived-declarator-type-list of. @5@ Array declarator. The derived-declarator-type-list is "d1 array of N" where d1 is the derived-declarator-type-list of  and N is the value of. @6@ Array declarator. The derived-declarator-type-list is "d1 array of unknown bound of" where d1 is the derived-declarator-type-list of. @7@ Function declarator. The derived-declarator-type-list is "d1 function of   returning" where d1 is the derived-declarator-type-list of. @8@ Parenthesized declarator. The derived-declarator-type-list is the same as that of the.