🔴 长度是在哪一刻丢掉的
(本条路线统一用 gcc -std=c11 -O0 编译)同一个数组,一个在外面数,一个在函数里数:
#include <stdio.h>
/* 数组一传进函数就"退化"成指针,长度在这里已经丢了 */
int count_inside(const int *a) {
(void)a;
return -1; /* 函数里根本算不出来,只能由外面告诉它 */
}
int main(void) {
int a[5] = {10, 20, 30, 40, 50};
int outside = sizeof(a) / sizeof(a[0]);
printf("%d/%d\n", outside, count_inside(a));
return 0;
}
全部评论