聊一聊:C语言的数组

    通常人们需要借助计算机完成统计每月的支出、日降雨量、季度销售额等任务。企业借助计算机管理薪资、库存和客户交易记录等。作为程序员,不可避免的要处理大量相关数据。通常,数组能高效的处理这样的数据。   

   数组

    数组是由数组类型相同的一系列元素组成。需要使用数组的时候,通过声明数组告诉编译器数组中内含多少元素和这些元素的类型,编译器根据这些信息正确的创建数组。普通变量可以使用的类型,数组元素都可以用。考虑下面的数组声明:

/*一些数组声明*/
int main(void)
{
    float candy[365] ; /* 内含365个float类型的数组 */
    char  code[12]  ;  /* 内含12个char类型的数组 */
    int   state[50]  ; /* 内含50个int类型的数组 */
    .......
}

方括号 [ ] 表明candy、code和state都是数组,方括号中的数字表示数组中的元素个数。要访问数组中的元素,通过使用数组中的下标数(也称为索引)表示数组中的各元素。数组元素的编号从0开始,所以candy[0]表示candy数组的第一个元素,candy[364]表示第365个元素,也就是最后一个元素。

初始化数组

数组通常用来存储程序需要的数据,有的程序一开始就初始化数组,只存储单个值的变量有时也称为标量变量,我们应该熟悉这样的初始化变量:

     int fix = 1 ;   float flax =PI =2;

     int main(void)

{

     int power[8] = {1,2,4,6,8,16,32,64};/* 从 ANSI C开始支持这种初始化 */4

}

可以演示一个小程序,打印每个月的天数:

/* day_mon1.c */
#include <stdio.h>
#define Months 12

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

同时注意,如果想将数组设置为只读的,可以利用const关键字,声明数组,const int day[Months]={31,28,.......},这样这个day[Months]只读,不能修改数组中的内容。初始化数组有很多问题可以细细追究,数组大小和列表中数据个数一致,这样编辑器就不会出现什么问题,但是要是不一致,会出现什么问题呢,当列表个数少于数组大小的时候,编译器会将剩余的元素都初始化为0,也就是说,如果不初始化数组,数组元素就和未初始化的普通变量一样,其中存储的都是垃圾值,如果部分初始化值,剩余的元素会被初始化为0.

  那如果初始化列表的值多于数组元素个数,编译器便不会那么仁慈,会判定为错误的。当然也有办法来解决。

                                                                            

 

 

                                                           

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值