我们可以有多少级指针?

2021-12-13 00:00:00 limit pointers c language-lawyer c++

单个变量中允许有多少个指针(*)?

How many pointers (*) are allowed in a single variable?

让我们考虑以下示例.

int a = 10;
int *p = &a;

同样我们可以有

int **q = &p;
int ***r = &q;

等等.

例如

int ****************zz;

推荐答案

C标准规定了下限:

276 实现应能够翻译和执行至少一个程序,该程序包含以下每一项限制的至少一个实例:[...]

5.2.4.1 Translation limits

276 The implementation shall be able to translate and execute at least one program that contains at least one instance of every one of the following limits: [...]

279 —12 个指针、数组和函数声明符(任意组合)修改声明中的算术、结构、联合或 void 类型

279 — 12 pointer, array, and function declarators (in any combinations) modifying an arithmetic, structure, union, or void type in a declaration

上限是特定于实现的.

相关文章