0
我想寫一個循環遍歷數組中的所有元素。我學到了概念here。我在執行方面遇到一些困難。我一直在嘗試調試,並且已經將下列函數編寫爲該調試過程的一部分。以下是我的代碼:爲什麼sizeof()我的雙數組[4]只有4?
#include <iostream>
using namespace std;
struct Vmul {
double c[4][4];
};
double Vmulti(double a[4], double d[4]) {
cout << sizeof(a) << endl;
cout << sizeof(a[0]) << endl;
cout << sizeof(a)/ sizeof(a[0]) << endl;
return 0;
}
int main()
{
double r[4] = { 1,2,3,4 };
double q[4] = { 1,2,3,4 };
Vmulti(r, q);
return 0;
}
輸出:
4
8
0
Press any key to continue . . .
我無法找出原因的sizeof(A)僅返回4?不應該是8 * 4嗎?爲什麼不是sizeof給我的大小,而是給我數組中的元素的數量?
你測量「指針」的大小(用詞不當數組,但幾乎同樣的事情),這似乎是4字節在您的機器上。 –
查看https://stackoverflow.com/questions/1328223/when-a-function-has-a-specific-size-array-parameter-why-is-it-replaced-with-ap – YYC
您使用'cout'和'<<'提示我,這不是一個C問題。 C和C++不是同一種語言。 –