我有兩個函數,其中之一是一個帶數組的函數,另一個帶有指針參數。他們返回相同的結果,但我不知道哪一個更好用。數組或指針的Pereferring函數?
#define SIZE 1024
int sumA(int a[SIZE][SIZE])
{
int sum = 0;
for(int y = 0; y < SIZE; y++)
for(int x = 0; x < SIZE; x++)
sum += a[x][y];
return sum;
}
int sumB(int *a)
{
int sum[4] = {0, 0, 0, 0};
for(int i = 0; i < SIZE*SIZE; i += 4)
{
sum[0] += a[i+0];
sum[1] += a[i+1];
sum[2] += a[i+2];
sum[3] += a[i+3];
}
return sum[0] + sum[1] + sum[2] + sum[3];
}
像'魔術數字I + = 4'非常糟糕;如此糟糕,以致它立即使'sumA'成爲更好的選擇。如果您必須使用元素的大小,請使用'sizeof'運算符,而不是硬編碼的數字。 –
爲什麼'sumB'保持4個獨立的總和,只能將它們全部結尾?爲什麼不只有像sumA這樣的總和? –
@Bora U你爲什麼要刪除代碼? –