2017-10-21 21 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