C Primer Plus(6) 中文版 第10章 数组和指针 10.1 数组

10.1 数组
数组由数据类型相同的一系列元素组成。需要使用数组时,通过声明数组告诉编译器数组中内含多少个元素和这些元素的类型。编译器根据这些信息正确地创建数组。普通变量可以使用的类型,数组元素都可以用。
方括号[]表明变量名是数组名,方括号中的数字表明数组中的元素个数。
要访问数组中的元素,通过使用下标数(也称为索引)表示数组中的各元素。数组元素的编号从0开始。
10.1.1 初始化数组
数组通常被用来存储程序需要的数据。
只存储单个值的变量有时也称为标量变量(scalar variable)。
C使用新的语法来初始化数组,如下所示:
int main( void ){
    int powers[8] = { 1, 2, 4, 6, 8, 16, 32, 64 }; /*从ANSI C开始支持这种初始化*/
    ... 

用以逗号分隔的值列表(用花括号括起来)来初始化数组,各值之间用逗号分隔,在逗号和值之间可以使用空格。根据上面的初始化,把1赋给数组的首元素,依次类推。不支持ANSI的编译器会把这种形式的初始化识别为语法错误,在数组声明前加上关键字static可解决此问题。
打印每个月的天数。
/* day_mon1.c -- prints the days for each month */
#include <stdio.h>
#define MONTHS 12

int main(void)
{
    int days[MONTHS] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int index;
    
    for (index = 0; index < MONTHS; index++)
        printf("Month %d has %2d days.\n", index +1,
               days[index]);
    
    return 0;

/* 数组:

*/

这个程序不够完善,每4年打错一个月份的天数(即,2月份的天数)。
使用了符号常量MONTHS表示数组大小,这是我们推荐且常用的做法。修改十分方便。
注意 使用const声明数组
有时需要把数组设置为只读。这样,程序只能从数组中检索值,不能把新值写入数组。要创建只读数组,应该用const声明和初始化数组。因此,程序清单10.1中初始化数组应改成:
const int days[MONTHS] = {31,28,31,30,31,30,31,31,30,31,30,31};
和普通变量一样,应该使用声明来初始化const数据,因为一旦声明为const,便不能再给它赋值。
初始化数组失败怎么办?
/* no_data.c -- uninitialized array */
#include <stdio.h>
#define SIZE

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_40186813

你的能量无可限量。

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

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

打赏作者

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

抵扣说明:

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

余额充值