Juniorboy 发表于 2020-4-24 20:22:41

课后作业

for (i = 0; i < sizeof(days) / sizeof(days); i++)


ps:这个程序的作用是判断这个数组里面有多少个元素的。
请问这个sizeof(days)里面的0可以换成99~0任意一个数(如果int days的话)

人造人 发表于 2020-4-24 20:44:48

可以,任意一个索引值都可以,这里就仅仅只是取这个数组成员的类型,不访问数组成员,索引不在数组范围也无碍

#include <stdio.h>

int main(void) {
    int array[] = {1, 2, 3};
    printf("%lu\n", sizeof(array) / sizeof(array[-1]));
    printf("%lu\n", sizeof(array) / sizeof(array));
    return 0;
}

BngThea 发表于 2020-4-24 20:54:10

其实更好的写法是直接写成days数组对应的数据类型
sizeof(int)
页: [1]
查看完整版本: 课后作业