这家伙又emo了 2022-04-18 20:26 采纳率: 84.6%
浏览 8
已结题

关于day_of_year的一个细节性问题

这个函数输入某年的某月某日,就知道是该年的第几天

问题相关代码
static char daytab[2][13] = {
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int day_of_year(int year, int month, int day)
{
    int leap;

    leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    for (int i = 1; i < month; i++)
        day += daytab[leap][i];
    return day;
}

这里之所以将daytab的元素声明为char类型,是为了说明在char类型的变量中存放较小的非字符整数也是合法的。我对这句话理解得不是很清楚。int数据类型的范围不是远大于char吗?将该数组的元素设置成int也没问题吧?

  • 写回答

1条回答 默认 最新

  • GEEK.攻城狮 2022-04-18 20:44
    关注

    修改成int也是没有问题的,但是C语言经常应用于一些嵌入式系统中,存储空间不像计算机那么大,特别是对于较大的数组,char和int型占用的空间还是差别很明显的。举个简单的例子,基础51单片机,内部仅仅有128字节的RAM,属于稀缺资源,在定义变量的时候,能用char的就不会用int。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月18日

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图