Does(int *)arr [2]是否必須使用類型轉換?如果是,它在哪裏使用?(int *)arr [2]和int * arr [2]之間的區別是什麼?
這個問題出現了,當我試圖編譯follwing代碼:通過更換
int* arr[2] with (int*)arr[2]
感謝
int* arr[2];
int arr1[] = { 1,2};
int arr2[] = { 1,6};
arr[0] = arr1;
arr[1] = arr2;
。
是的,'(int *)arr [2];'是一個強制轉換表達式,將'arr [2]'強制轉換爲'int *'。但是'arr'可能沒有被聲明,編譯器barfs。 –
在聲明上進行類型轉換?我認爲這是一個指向int數組的指針.. –
@LewsTherin這將是'int(* arr)[2];'。用括號表示,這不是一個聲明。這只是一個沒有效果的表達式(除了'arr'還沒有被聲明的事實之外)。 –