解决自己的小问题sizeof(ages) / sizeof(ages[0])是干嘛的

 来到数组这里是不是遇到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

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ara~追着风跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值