C++中指针可以有多少层嵌套?
大家好。我写C++大约一年了,有一个理论问题困扰着我。我知道可以创建指向指针的指针,比如 `int** ptr`,甚至三重指针 `int*** ptr`。但能走多远?语言标准中是否有任何限制,还是取决于编译器/平台?
例如,我可以写:
```cpp
int a = 5;
int* p1 = &a;
int** p2 = &p1;
int*** p3 = &p2;
int**** p4 = &p3;
// 以此类推...
```
但如果我尝试创建一个有100层嵌套的指针呢?它能编译吗?如果能,它在运行时如何工作?我觉得实际上没人会用超过2-3层,但我想知道正式的限制。
另外,C和C++在这方面有区别吗?我听说C的限制可能更严格。还有,这会影响性能吗?如果可能,我将感谢一个详细的答案,包含示例和标准引用。
<<>>