我從我的講師那裏聽說,sizeof(某個指針)在機器中總是相等的。例如,如果是64位,則所有指針都是8字節,32位是4字節。所以,我喜歡用sizeof
當我想像數組混淆確定元素號
int arr[] = {2, 5, -1, 10, 9};
int size = sizeof(arr)/sizeof(int)
我假定上面的代碼的int
需要4
指定數組的大小,因此20/4
給出arr
元素的個數。
int arr[] = {2, 5, -1, 10, 9};
int size = sizeof(arr)/sizeof(int*)
我還以爲sizeof(some pointer)
需要4
,所以20/4
再次給出了arr
元素的個數。
我很困惑,當我將它應用於double
陣列。我認爲它不應該工作。但是,它的工作。
double arr[] = {2, 5, -1, 10, 9};
int size = sizeof(arr)/sizeof(double*);
如果每個指針在機器中的大小相同,結果怎麼樣?可以解釋這個問題嗎? 編輯
予混合起來除以* ARR和雙指針
也許你應該發佈你期望的和爲什麼,以及你得到什麼。因爲現在你的問題不是很清楚。 – juanchopanza
你難以理解的地方在哪裏? – snr
只有你所期望的和爲什麼,你得到了什麼,以及你實際要問什麼。 – juanchopanza