我的代码如下
#include <stdio.h>
#include <stdlib.h>
int func(int nums[])
{
printf("%d\n", sizeof(nums)/sizeof(int));
}
int main()
{
int nums[] = {1,2,3,4,5,6};
printf("%d\n", sizeof(nums)/sizeof(int));
}
为什么main函数里面的结果是6但是func函数里面 的结果是2呢?
我的代码如下
#include <stdio.h>
#include <stdlib.h>
int func(int nums[])
{
printf("%d\n", sizeof(nums)/sizeof(int));
}
int main()
{
int nums[] = {1,2,3,4,5,6};
printf("%d\n", sizeof(nums)/sizeof(int));
}
为什么main函数里面的结果是6但是func函数里面 的结果是2呢?
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
在 func 里,nums 虽然长得像一个数组,但是它不是一个数组,它只是一个指针。
要想在 func 获得“数组”得长度,只能通过参数传进来。