C语言一维,二维数组

目录

一,一维数组

      1,数组的创建

      2,数组的初始化

           1,完全初始化

           2, 不完全初始化 

           3,指定初始化器初始化(新特性)

            3.1 特性

二,一维数组的使用 

  1,指定数组的大小

  2,数组的边界

  3,给数组元素赋值

二,二维数组

 1,二维数组的创建  

2,二维数组的初始化

3,二维数组的使用

三,变长数组

四,复合字面量

总结与补充


一,一维数组

        数组是一组相同元素的集合

      1,数组的创建

typedef   arr_name[const_n] ;

           typedef : 表示数组元素的类型 ,普通变量可以使用的类型,数组都可以使用     

           arr_name : 表示数组名(自定义)

           const_n : 是一个常量表达式,用来指定数组的大小

如: int arr[10]

        数组元素的类型是int ,数组名是 arr ,数组大小是10,可以存放十个元素

      注:创建数组时 [ ] 里要给一个常量表达式才可以,虽然有的标准中可以使用变长数组(VLA),有的编译器还是会报错误的。

     

      2,数组的初始化

           1,完全初始化

                      初始化时,每个元素都赋上值,如:

  int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 } ;               

           2, 不完全初始化 

                      初始化时,只对个别元素,或者前面几个元素初始化

int arr2[10] = { 1,2,3,4,5 } ;

           3,指定初始化器初始化(新特性)

提示:数组下标从0开始,下标引用时[4]表示数组第五个元素,[1]表示数组第二个元素 。 

//指定初始化数组的某一个元素
  int a[10] = { [5] = 6} ;
             //把 arr[5] 初始话为 6 
//对days数组使用初始化器初始化
int days[12] = { 31 , 28 ,[4] = 31 ,30,31,[1]=29} ;

//输出结果 31,29,0,0,31,30,31,0,0,0,0,0

         由此可以看到,前面已经被初始化的元素可以被后面使用初始化器修改,[4] 被初始化后直接从继续开始输出话,这就说明了指定初始化器的两个重要特性。

            3.1 特性

                  1 ,如果指定初始化器后面有更多的值,如该代码片段中[4] =31,30 ,31 。那么后面                           的值将会初始化指定元素后面的值。也就是说 days[5]被初始化为30,days[6]被初                             始化为31。

                  2,如果再次初始化指定的元素,那么最后初始化的值将会取代之前的初始化,如:

                        [1]在前面被初始化为28,但是后面使用初始化器初始化为29,那么days[1]的值就                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值