数组

数组:一组具有相同数据类型的数据的集合
    一维数组
    二维数组
    字符数组
    
一维数组
    定义格式:
        类型说明符  数组名[整型表达式];
        
        "类型说明符":指定数组元素的类型,任意C语言合法的类型都可以
        "数组名":C语言标识符
        "整型表达式":指定数组元素的个数。
        
    如:
        int a[10];
        
    一维数组在内存中的存放:
        在连续的地址空间中,从低地址到高地址依次连续的存放数组中的每个元素。
        
    一维数组元素的引用:
        数组名[下标]
        "下标":C语言里下标是从0开始的整数,即必须要>=0
            a[0] a[1] a[2]  ... a[9]
        ★引用数组元素a[i]跟普通变量一样,可读可写,即可作左值也可作右值,还可以取地址。
        
    一维数组的初始化:  数组的初始化用{},并且必须在定义时直接初始化
        (1)全部初始化。
            int a[10]={1,2,3,4,5,6,7,8,9,10};
        (2)可以只对部分元素初始化,后面的元素会自动的初始化为0
            int a[10]={1,2,3};
        (3)如果对全部数组元素赋初值,那么可以不指定数组的长度
            int a[]={1,2,3,4,5,6,7,8,9,10};
            
二、二维数组
    int a[4];//定义一个数组a
    我们再定义一个数组b
    typeof(a)  b[3];
    //typeof(a) ==> int[4];
    int[4] b[3];
    ==> int b[3][4];
    新定义的数组b里面有三个元素,b[0],b[1],b[2]而这三个元素,每个元素都是int[4]类型。
    
    由推导过程可以得出:二维数组实际上是一个一维数组,只不过该一维数组中的元素又是
    一个一维数组。
    我们把int b[3][4]在使用中可以理解为一个3行4列的矩阵。
    
    二维数组的定义:
        类型说明符  数组名[整型表达式1][整型表达式2];
                             多少行     每行多少列
                             
    二维数组在内存中的存放:
        按行存放,即先顺序的存放第一行元素,再接着存放第二行元素...
        
    二维数组元素的引用
        数组名[第几行][第几列]  
        注意:下标是从0开始的
        
    二维数组的初始化:
        (1)分行给二维数组赋初值
          int b[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
        (2)将所有数据写在一个花括号内,按数组排列顺序对各元素赋值
          int b[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
        (3)对部分元素赋值,剩余的元素自动置0
          int b[3][4]={1,2,3};
          int b[3][4]={{1,2},{5,6,7,8},{9,10}};
        (4)如果对全部元素都赋初值,则定义数组时可以对第一维的长度省略,
          但是第二维的长度不能省略。
          int b[][4]={1,2,3,4,5,6,7,8,9,10};
          

      
三、字符数组及字符串操作函数
    字符数组就是数组元素是char(字符型)的数组,它包括一维数组和二维数组。
    
    char c1[]={'c','h','i','n','a'};
    char c2[]={"china"};
    
    两者有什么区别呢?
     char c2[]={"china"};
     <=> char c2[]={'c','h','i','n','a','\0'};
     字符串在保存时会在末尾加一个终止符'\0','\0'的ASCII码就是0。
     终止符的作用是用来标志字符串的结束。
     我们在进行操作字符串时,都是代入字符串的首地址,正因为每个字符串都有一个
     终止符,系统才知道字符串的具体范围。
     ★数组名它代表数组的首地址,是一个常量
     
★字符串操作函数:  string.c
  (1)puts/gets
  (2)strcpy/strncpy
  (3)strlen
  (4)strcat/strncat
  (5)strcmp/strncmp

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值