如何定义一个float数组

时间:2016-02-20 11:39:27

标签: c arrays gcc floating-point

我正在使用gcc工作debian 7。

我按如下方式初始化测试向量:

float test_vec[] = {4.31,3.33,1.58,0.75,7.82,1.85,0.45,0.11,0.98,3.45};

应用于此向量的sizeof()函数返回40。

我使用for()来printf每个元素,其中大多数是零或非常大的正/负数。

如何定义test_vector以获得正确的尺寸?

2 个答案:

答案 0 :(得分:3)

sizeof运算符返回数组的字节数而不是元素数。如果您需要所需的元素数量,例如sizeof(float_vec) / sizeof(float_vec[0])

请注意这个"技巧"一旦数组已经衰减为指针(例如,当您将数组作为参数传递给函数时会发生什么),它只适用于实际数组,然后它将不再工作,因为sizeof运算符然后给你大小指针而不是它指向的内容。

答案 1 :(得分:3)

你可以这样做:

float test_vec[] = {4.31,3.33,1.58,0.75,7.82,1.85,0.45,0.11,0.98,3.45};
size_t size = (sizeof(test_vec)/sizeof(*test_vec));
printf("%zu\n", size);

输出10。