c 的 typeof http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof
gcc 的 typeof 並不是判斷資料型態用的
根據 gnu 的說法是參考到(Referring to)某個變數的型態,如上面那頁範例所示
一般『高階語言』對變數資料型態並沒有很嚴格要求
甚至不需要事先宣告便能直接使用,而且一個變數可以給予各種不同型態的資料
因此會有 type(), gettype() 或 typeof() 這類傳回『資料型態名』以供辨別的函數
c/c++ 對變數型態有嚴格的要求,使用變數前都必須先宣告以確定型態
而且執行時期也不能指定不同型態的資料給變數(可強制轉型的除外)
如此這般也就不需要 type(), gettype() 或 typeof() 這些函數

ps: 強制轉型實際上已先將資料轉成被指定變數相同的型態,所以該變數型態沒變
在 x86 32bit 的環境下
第一個 char * array[100];
array 是大小為 400bytes 的陣列,其中每一個欄位都是一個 pointer,sizeof(array) == 400
第二個 char ** array;
array 是指向一個 pointer 的 pointer,大小是 4 bytes,sizeof(array) == 4
一個是陣列,一個是指標,資料型態應該不相同吧
至於這兩個『資料型態』是否相同,看各人的理解嘍
