gpt4 book ai didi

c - 使用 sizeof 计算数组的长度

转载 作者:行者123 更新时间:2023-11-30 19:08:13 25 4
gpt4 key购买 nike

我正在尝试使用 sizeof 函数确定数组的长度。

我的代码如下所示:

int n;
n = sizeof(a)/sizeof(a[0]);

我不断收到警告,指出此类型不一致。我明白这一点,但我该如何解决这个问题?

最佳答案

错误告诉您a是一个函数参数,并且sizeof(a)将返回int*的大小而不是数组的实际大小。这样做的原因是因为数组类型的函数参数实际上与指针完全相同(因此 int[] 类型的参数实际上只是一个 int* 类型的参数>) 并且数组类型中指定的大小只是为读者提供的信息,而不是编译器实际强制执行的内容。

sizeof(a)/sizeof(a[0]) 技巧实际上只适合宏使用,而不是您应该在非宏代码中编写的内容,因为如果您在可以静态知道数组长度的上下文中(例如,它不是来自函数参数),那么您应该已经知道它是什么,而无需计算它。

关于c - 使用 sizeof 计算数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45764691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com