Possible Duplicate:
gcc compile error: cast specifies array type是(int *)和(int [])是否相同?
我想檢查(int *)和(int [])的區別。當我編譯下面的代碼時,第一行很好。但是對於行2,我的編譯器提供了以下錯誤:
test.c:10: error: cast specifies array type
任何一個可以告訴我這個錯誤的含義,我在哪裏犯了錯誤?
#include<stdio.h>
void abc(int *a)
{
int i;
for(i=0;i<2;i++)
{
printf("%d",((int *)a)[i]); //(1)
printf("%d",((int [])a)[i]); //(2)
}
}
int main()
{
int b[2]={0,1};
abc(b);
return 0;
}
並不完全解決爲什麼你的轉換失敗,但http://stackoverflow.com/a/660812/567864很好地解釋了爲什麼int *和int []不是同一個東西,它們在內部與編譯器有何不同。 – Corbin 2012-04-28 10:54:01