0
私は、配列のすべての要素を渡って実行するループを記述しようとしています。私は概念hereを学んだ。私はその実行のいくつかの困難に直面しています。私はデバッグしようとしており、そのデバッグプロセスの一部として以下の関数を書いています。以下は、私のコードです:sizeof()のdouble配列[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が私にサイズを与えず、代わりに配列の要素数を教えてくれないのはなぜですか?
をバイト数。 –
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++は同じ言語ではありません。 –