|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i, year;
printf("请输入一个年份:");
scanf("%d", &year);
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
{
days[1] = 29;
}
for (i = 0; i < sizeof(days) / sizeof(days[0]); i++)
{
printf("%2d月份:%d天\n", i+1, days[i]);
}
return 0;
}
i < sizeof(days) / sizeof(days[0]) 这样的形式表达数组的长度,在实际开发中是很常见的技巧,这是什么意思啊?
sizeof(days)是整个数组的大小
sizeof(days[0])是一个元素的大小
相除就是数组长度了,白话讲数组里面元素的个数
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
sizeof(days) 12*4=48,int类型占四个字节 ,这里的12 是让你看的明白48是怎么算出来的,实际上编译器是不知道12 的,只知道 数组总长度是 48
sizeof(days[0]) 第一个元素占用的字节 因为是int 所以是 4 个字节, 4
sizeof(days) / sizeof(days[0]) 数组总长度 / 数组第一个元素的长度 48 / 4 得出,数组里的元素个为 12
|
|