关于数组

分为一维数组、二维数组、字符数组

1、c语言不允许对数组的大小做动态定义,即数组的大小不依赖于程序运行过程中变量的值,例如:

      int n;

      scanf("%d",&n);

      int a[n];

      这样是不行的


2、c语言规定只能逐个引用数组元素而不能一次引用整个数组

      下标可以是整型常量或整型表达式,例如:a[0],a[2*3]

      元素个数小于数组长度,则其余元素自动为0

      一维数组:在对全部元素赋初值时,可以不指定数组长度,例如:int a[]={1,2,3,4,5}  (系统会自动定义a数组长度为5

      二维数组初始化:

             1) 分行给二维数组赋初值:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

             2) 将所有数据写在一个花括号:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

             3) 对部分元素赋初值:int a[3][4]={{1},{5},{0,9}}; 分行,其余元素自动为0  

                 也可以只对几行元素赋初值:int a[3][4]={{1},{5,6}};

             4) 如果对全部元素赋初值,定义时第一维长度可以省略,第二维长度不能省略:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}  或者:int a[][4]={{1,2,3,4},{5},{}}

                  即,可以省略行数,不能省略列数

 

3、字符数组中,如果元素个数小于数组长度,则其余元素自动为空字符('\0')

      字符数组就是把数字换成字符,其余规则与一般数组相同:char c[]={'u','f','o'}

      在C语言中,将字符串作为字符数组来存放。字符串结束标志 '\0',字符串结束标志之前的长度为有效字符串长度

      字符数组初始化的另一种方法是采用字符串常量来初始化,例如:char c[]={"i am happy"};  也可以省略花括号直接写成char c[]="i am happy";数组长度不是10,而是11,因为字符串敞亮的最后由系统加上一个'\0'

           char c1[3]={'a','s','d'},结尾没有'\0';而char c2[3]="asd"会报错,此时会自动加'\0',实际长度变成了4

 

 

注:参考文章 ,对部分做了精简

转载于:https://www.cnblogs.com/rainbowdawn/p/8400045.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值