【发布时间】:2023-04-09 21:02:01
【问题描述】:
这是一个小代码sn-p。在函数 g() 中,有没有办法知道 a[] 中的字符串数,即在本例中为 4。
在 main 中,我可以借助 sizeof() 函数得到这个,但是因为我将地址传递给函数 g() 并且我的电脑是 64 位的,所以 g() 中的 sizeof(a) 是 8指针的大小,但我必须知道字符串的数量。
void g(char *a[])
{
printf("%d\n",sizeof(a)/sizeof(a[0]));
}
int main()
{
char *a[]={"1","2","3","4"};
printf("%d\n",sizeof(a)/sizeof(a[0]));
g(a);
}
【问题讨论】:
-
选择一种语言。是的,您可以使用
g作为模板,通过非类型参数推导在 C++ 中对固定数组执行此操作,不传递长度就无法在 C 中执行此操作。 -
有趣的问题。真的。
-
sizeof不是函数,顺便说一句,它是一个运算符