我正在尝试获取以下数组中的浮点数:
float coins[] = {0.25, 0.10, 0.05};
printf("%i", sizeof(coins));
我得到12
。
我想获得3
。
我在这里缺少什么?
答案 0 :(得分:2)
您可以通过
获取数组中的元素数量array_size/single_array_element_size
即
sizeof(coins)/sizeof(float)
答案 1 :(得分:1)
使用表达式sizeof coins / sizeof *coins
来获取数组的元素数。
sizeof
产生其操作数的字节大小。因此,如果传递数组操作数,您将获得数组的字节数而不是元素数的存储大小。
答案 2 :(得分:0)
int main(void)
{
float coins[] = {0.25, 0.10, 0.05};
int n = sizeof(coins)/sizeof(coins[0]);
printf("%d", n);
return 0;
}