鱼C论坛

 找回密码
 立即注册
查看: 3125|回复: 3

[已解决]这个循环条件是什么意思啊 已经标红了

[复制链接]
发表于 2020-3-15 20:46:52 | 显示全部楼层 |阅读模式
2鱼币
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  5.         int i, year;

  6.         printf("请输入一个年份:");
  7.         scanf("%d", &year);

  8.         if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
  9.         {
  10.                 days[1] = 29;
  11.         }

  12.         for (i = 0; <font color="Red">i < sizeof(days) / sizeof(days[0])</font>; i++)
  13.         {
  14.                 printf("%2d月份:%d天\n", i+1, days[i]);
  15.         }


  16.         return 0;
  17. }
复制代码



最佳答案
2020-3-15 20:46:53
sizeof()函数是获取变量所占的长度。sizeof(days)是数组days的空间大小,大小为int类型变量的空间大小×数组中变量个数,sizeof(days[0])是days[0]的空间大小,即int类型变量的空间大小。
因此sizeof(days) / sizeof(days[0])就是获取days数组的变量个数。

最佳答案

查看完整内容

sizeof()函数是获取变量所占的长度。sizeof(days)是数组days的空间大小,大小为int类型变量的空间大小×数组中变量个数,sizeof(days[0])是days[0]的空间大小,即int类型变量的空间大小。 因此sizeof(days) / sizeof(days[0])就是获取days数组的变量个数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-15 20:46:53 | 显示全部楼层    本楼为最佳答案   
sizeof()函数是获取变量所占的长度。sizeof(days)是数组days的空间大小,大小为int类型变量的空间大小×数组中变量个数,sizeof(days[0])是days[0]的空间大小,即int类型变量的空间大小。
因此sizeof(days) / sizeof(days[0])就是获取days数组的变量个数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-15 21:09:40 | 显示全部楼层
sizeof返回的是传入数据的类型所占的字节数,如sizeof(1) 由于传入的是一个整型,所以返回数字是4 而如果传入的是数组,也会返回数组所占字节数,所以你这个条件的意思是,i<数组所占的字节数/单个元素所占的字节数,其含义为数组的长度,类似于js中的.length.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-17 00:47:31 | 显示全部楼层
        days[] 是有 12 个元素的整型数组,占用了 4 × 12 = 48 个字节,days[0] 是 days[] 中的一个元素,属于整型数,占用 4 个字节,所以:
  1.         for (i = 0 ; i < sizeof(days) / sizeof(days[0]) ; i ++)
复制代码

        等效于:
  1.         for (i = 0 ; i < 12 ; i ++)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 23:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表