【C】Pointer (4) How Pointer Is Described in C Standard?

※ 日本語ページはこちら

Why even professionals write wrong statements or vague descriptions in books or web sites?

Let’s investigate how pointer is defined in the specification.

For example, you can read specification of C language in below URL.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

If you search “pointer” in this files, you may find some funny things.

  1. 637 hits, too many.
  2. Even there are 637 hits, it is not clear where “pointer” is clearly defined.

In these circumstances, I recommend search from last, and investigate Index at first. If you search 3 times from the last, you can find

pointer, 6.2.5

on page 547, left column.
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf#page=547

This Section 6.2.5 page 48 (page number on pdf is 36) is the 1st place where “pointer” itself is explained.

– A pointer type may be derived from a function type, an object type, or an incomplete type, called the referenced type.

A pointer type describes an object whose value provides a reference to an entity of the referenced type.

A pointer type derived from the referenced type T is sometimes called ‘‘pointer to T’’.

The construction of a pointer type from a referenced type is called ‘‘pointer type derivation’’.

These methods of constructing derived types can be applied recursively.

ref: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf#page=48

Still confusing. To be honest, when I read this at first time, I could not understand.

I will summarize and explain rigorously in next article.

That’s all for this time.