以一种不同寻常的方式创建指针

时间:2019-07-10 17:03:49

标签: c++ pointers memory-address

我一直在寻找用C ++实现SCC算法的方法,其中有一条怪异的路线显然超出了我的理解范围。

Graph<V,E> gt(SIZE(g)), res(SIZE(g)), *tab[] = {this,&gt};

我不了解*tab[] = {this,&gt};

我认为它是一个指针,但仍然根本不了解它,所以如果有人可以向我解释它,我将非常高兴。我使用C ++已有6年了,以前从未见过这种指针。

2 个答案:

答案 0 :(得分:2)

这似乎是三个不同的声明:

Graph<V,E> gt(SIZE(g));
Graph<V,E> res(SIZE(g));
Graph<V,E> *tab[] = {this,&gt};

可能是有人想使代码最小化,但是可以说它以一种非常严格的方式影响了可读性。

我不知道为什么tab甚至存在,这取决于在代码的其他部分中如何使用它。这是某种古怪的链表吗?

答案 1 :(得分:1)

tab是指向Graph<V, E>的指针的数组,并用两个元素初始化:指针this和指向新创建的gt的指针。