计算C中数组中的项目数
Counting number of items in an array in C
当我执行其他人在线发布的内容时,我不断收到 100
的输出:
int total = sizeof(num)/sizeof(int);
它似乎对我不起作用。这是我的代码:
int main() {
static int num[100];
int totalNum = sizeof(num)/sizeof(int);
return 0;
}
void readNumbers(int* num) {
int i = 0;
FILE *fp;
fp = fopen("/Users/Documents/hello.txt", "r");
if (fp == NULL) {
printf("Could not load file");
exit(0);
}
/* Loads numbers into num array */
int number;
while(fscanf(fp, "%d", &number) > 0) {
num[i] = number;
i++;
}
}
我的输出是 100,所以我假设没有任何东西被插入到 num 数组中?如果我打印出 sizeof(num)
它会给我一百; 4 字节 * 100 = 400。
这是 hello.txt
中的内容:
14 21 39 48 109 3882
与其他语言中的数组(可以增长和收缩,并会告诉您数组当前包含多少元素)不同,C 数组只是一个具有固定大小的简单内存块。您声明了一个可以容纳 100 个元素的数组,这就是 sizeof
要告诉您的全部内容。
如果您想知道在数组中放入了多少个数字,则必须在单独的变量中跟踪它。数组本身不包含该信息。
当我执行其他人在线发布的内容时,我不断收到 100
的输出:
int total = sizeof(num)/sizeof(int);
它似乎对我不起作用。这是我的代码:
int main() {
static int num[100];
int totalNum = sizeof(num)/sizeof(int);
return 0;
}
void readNumbers(int* num) {
int i = 0;
FILE *fp;
fp = fopen("/Users/Documents/hello.txt", "r");
if (fp == NULL) {
printf("Could not load file");
exit(0);
}
/* Loads numbers into num array */
int number;
while(fscanf(fp, "%d", &number) > 0) {
num[i] = number;
i++;
}
}
我的输出是 100,所以我假设没有任何东西被插入到 num 数组中?如果我打印出 sizeof(num)
它会给我一百; 4 字节 * 100 = 400。
这是 hello.txt
中的内容:
14 21 39 48 109 3882
与其他语言中的数组(可以增长和收缩,并会告诉您数组当前包含多少元素)不同,C 数组只是一个具有固定大小的简单内存块。您声明了一个可以容纳 100 个元素的数组,这就是 sizeof
要告诉您的全部内容。
如果您想知道在数组中放入了多少个数字,则必须在单独的变量中跟踪它。数组本身不包含该信息。