来到数组这里是不是遇到sizeof(ages) / sizeof(ages[0])有点懵??可能我比较菜,查了半天我发现这里还是没把这个弄清楚,那么这个是什么意思呢??有什么作用呢
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ages[] = {1,2,3,4,5,6,7,8,9,10};
int size = sizeof(ages) / sizeof(ages[0]);//可以用来求出数组长度总大小40/4=10
printf("%d",size);
return 0;
}
这个主要是用来求出定义数组长度的大小,用这个方式会比直接在循环里面输入数字更准确不容易出错下面我们来看一段计算年份天数的问题
#include <stdio.h>
#include <stdlib.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;//shi de hua gai wei 29 tian
}
for(i = 0;i < sizeof(days) / sizeof(days[0]);i++)//这里可以输入i<12,但如果后期数组数据比较大怎么办,我们可以使用后面这一段来求出数组里面长度的大小
{
printf("%2d月份:%d天\n",i + 1,days[i]);
}
return 0;
}
int size = sizeof(days) 这个是求出这个数组字节的大小为40,sizeof(days[0])这个字节大小为4
sizeof(days[6]);这个字节大小为多少呢??显然这个字节大小也为4