Home  >  Article  >  Backend Development  >  How Deep Can Pointers Go in C?

How Deep Can Pointers Go in C?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 19:40:02970browse

How Deep Can Pointers Go in C?

Pointer Depth Limits in C

In C programming, it's possible to create pointers of multiple levels, also known as multi-level pointers. These pointers allow us to indirectly access data through layers of indirection.

Question: How many levels of pointers are permitted in a single variable?

Answer:

The C standard [C11, §5.2.4.1] sets a lower limit, requiring implementations to support at least 12 levels of pointer indirection. This means that a variable can have up to 12 asterisks (*) in its declaration, modifying an arithmetic, structure, union, or void type.

For example:

<code class="c">int **************zz;</code>

However, the upper limit on pointer depth is implementation-specific. Different compilers and systems may have varying limits on the maximum number of levels of indirection that can be supported. Some implementations may impose a practical limit even below the theoretical 12-level requirement, due to factors such as performance optimizations or memory constraints.

Typically, the maximum pointer depth supported is much lower than 12 and varies from system to system. It's advisable to consult the documentation or perform empirical testing to determine the specific limit for the target platform.

The above is the detailed content of How Deep Can Pointers Go in C?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn