【发布时间】:2012-04-22 15:31:24
【问题描述】:
单个变量中允许有多少个指针 (*)?
让我们考虑下面的例子。
int a = 10;
int *p = &a;
同样我们可以有
int **q = &p;
int ***r = &q;
等等。
例如,
int ****************zz;
【问题讨论】:
-
如果这对你来说真的是个问题,那你就做错了。
-
您可以继续添加指针级别,直到您的大脑爆炸或编译器崩溃 - 以最快发生的为准。
-
既然指向指针的指针又是一个指针,那么理论上不应该有任何限制。也许编译器将无法处理超出一些可笑的上限,但是...
-
使用最新的 c++ 你应该使用类似
std::shared_ptr<shared_ptr<shared_ptr<...shared_ptr<int>...>>> -
@josefx - 这显示了 C++ 标准中的一个问题 - 没有办法提高智能指针的权力。我们必须立即要求延长支持,例如
(pow (std::shared_ptr, -0.3))<T> x;用于 -0.3 级间接。
标签: c++ c pointers language-lawyer limit