我已經用 C 撰寫了這個函式。
他們兩個陳述是等價的嗎?
void dot_prod(float *A, int m, float *B, float *C) {
int i, j, z, k;
for (i = 0; i < m; i ) {
for (j = 0; j < m; j ) {
for (k = 0; k < m; k ) {
C[i * m k] = A[i * m j] * B[m * j k];
//*(C i * m k) = *(A i * m j) * (*(B m * j k)); // is equivalent?
}
}
}
}
是
C[i * m k] = A[i * m j] * B[m * j k]
相當于
*(C i * m k) = *(A i * m j) * (*(B m * j k))?
uj5u.com熱心網友回復:
幾乎。
C[i * m k] = A[i * m j] * B[m * j k]
相當于
*(C (i * m k)) = *(A (i * m j)) * (*(B (m * j k)))
這與沒有額外括號的情況不同,因為索引中的加法可能會溢位,在這種情況下,指標/整數加法不一定是關聯的,具體取決于int和 指標的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/390816.html
