关于数组

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

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、字符数组中,如果元素个数小于数组长度,则其余元素自动为空字符('')

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

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

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

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

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

原文地址:https://www.cnblogs.com/rainbowdawn/p/8400045.html