2017-10-21 34 views
-2
int main() 
{ 

    int *tab[5]; 
    int i=0; 
    for (;i<5; i++) 
    { 
     tab[i]=&tab[i]; 
    } 

    return 0; 
} 

我想将自己的地址分配给选项卡的每个元素。为什么它不起作用?我想写在他们的指针自己的地址

+6

'&tab [i]'有什么类型?提示:它不是'int *'。 – Rakete1111

+0

你想要做的事情是不可能的,因为类型需要无限递归。 –

+0

ohhh所以我不能写指针的地址作为指针的价值? – icnm

回答

2

你不能用int*的数组来做到这一点。因为&tab[i]将会是int**。而那些指针类型是不兼容的。

然而,void*指针可以容纳的地址任何其他对象指针,甚至一个void**。因此,这个声明:

void* tab[5]; 

将您的程序变成一个良好的形式。

+0

但问题是,你为什么要这么做? :D – Rakete1111