为什么C-Array在传递给函数时有一个错误的size of()值?完整的例子:#include <stdio.h>void test(int arr[]) {
int arrSize = (int)(sizeof(arr) / sizeof(arr[0]));
printf("%d\n", arrSize); // 2 (wrong?!)}int main (int argc, const char * argv[]) {
int point[3] = {50, 30, 12};
int arrSize = (int)(sizeof(point) / sizeof(point[0]));
printf("%d\n", arrSize); // 3 (correct :-) )
test(point);
return 0;}在将其传递给函数之前,size of给出了正确的值。在函数中的相同数组上执行完全相同的操作会产生奇怪的结果。少了一个元素。为什么?
3 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
void test(int arr[])
void test (int* arr)
- 3 回答
- 0 关注
- 525 浏览
添加回答
举报
0/150
提交
取消