第1周 C Primer Plus(第五版) 数组 程序清单10.1例题

问题及代码:

/*
*copyright(c)2016,时缔实验室
*All rights reserved.
*文件名称: day_mon1.c
*作    者: 时帝
*完成日期: 2016年4月3日
*版 本 号: v1.0
*
*问题描述:打印出每月的天数;
*输入描述:不需要输入;
*程序输出:输出1到12月份的天数;
*/
#include <stdio.h>
#define MONTHS 12
int main()
{
    int days[MONTHS]={31,29,31,30,31,30,31,31,30,31,30,31};//变量days后面无空格,直接接一个[],后面的值用大括号{}。
    int index;
    for (index=0;index<12;index++)
    printf("months has %d days %2d\n",index+1,days[index]);
    return 0;
}

运行结果:


知识总结:

这种初始化数组的方式,只适用于ASNI编译器。

学习心得:

注意要用大括号{}来包含数组;

如果需要使用只读数组,可以在int前加const,程序会把数组中每个元素当成常量处理。


2、另一种方式:

#include <stdio.h>
int main()
{
    int days[]={31,29,31,30,31,30,31,31,30,31,30,31};//空括号初始化
    int index;
    for (index=0;index<sizeof days/sizeof days[0];index++)
    printf("months has %d days %2d\n",index+1,days[index]);
    return 0;
}

知识总结:

用空的括号对数组进行初始化,编译器会自动确认数组大小;

学习心得:

sizeof days 代表整个数组大小;sizeof days[0]代表单个元素大小,两者相除即得数组中元素的数目。

#include <stdio.h>
#define MONTHS 12
int main()
{
    int days[MONTHS]={31,85,[2]=35,52,[7]=5,25,48};
    int index;
    for (index=0;index<sizeof days/sizeof days[0];index++)
    printf("months has %d days %2d\n",index,days[index]);
    return 0;
}

知识总结:

C99指定初始化项目;

学习心得:

如果初始化[2],后面有不止一个值,则会对后续的数组进行初始化,如[3]即为52。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值