c语言数组相关知识

来源:互联网 发布:帝国cms差 编辑:程序博客网 时间:2024/05/16 08:08

数组

定义:数组具有相同类型的数据的集合。

一维数组

1.一般形式:类型  数组名[常量表达式];例如:int  arr[10]

2.常量表达式不允许为变量;

3.数组元素下标可以是任何整形常量、整形变量、整形表达式;

4.使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素;

5.可以只给一部分元素赋值,其他元素默认为0;

6.需要整体赋值时只可以在定义的同时整体赋值;

例如:int arr[5]={1,2,3,4,5};正确

            int arr[5];          arr[5]={1,2,3,4,5};错误

7.对全部数组元素赋值时,可以不指定数组长度;

例如:int arr[5]={1,2,3,4,5};或者

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

但是,既不赋初值也不指定长度时错的;

例如:int  arr[];错误

二维数组

1.一般形式:类型   数组名[表达式1][表达式2];

例如:int  arr[3][4];//表示这是一个三行四列的二维数组

可以这样想,把它看成是3个一维数组,每个一维数组有四个元素;

2.与 一维数组一样数组元素下标可以是任何整形常量、整形变量、整形表达式;

3..需要整体赋值时只可以在定义的同时整体赋值;

例如:int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

4.可以把所有数值写在一个花括号里;

例如:int  arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

5.可以只给一部分元素赋值,其他元素默认为0;

例如:int arr[3][4]={{3},{4],{5}};

6.对全部元素赋值时,可以省略第一维长度,第二维不可以省略;

例如:int  arr[3][4]={1,2,3,4,5,6,7,8,9};

 可以写成 int  arr[][4]={1,2,3,4,5,6,7,8,9};

字符数组

1.定义:char  arr[10];

2.初始化:

      char  arr[]={'a','b','c','d'};

      char  arr[]={"abcd"};

      char  arr[]="abcd";

注:因为字符串结尾自动加'\0',所以int  arr[]="abcd"的长度为5,而不是4.

3.字符串输入

     scanf();用%c逐个字符输入

    可以用%s以字符串的形式输入,比如: char a[6];   scanf("%s",a);注意,a前不用加&,因为a是数组名,就代表了数组a的首地址

    以%s输入时,从第一个不是空字符开始,终止于第一个空字符处;比如:输入How are you时,只输出How

    gets();也可以获得一个字符串,与scanf()不同的是空格和回车都存放在数组中,最后自动加入'\0',不会出现输出不全的情况

4.字符串的输出

   printf();用%c逐个字符输入,可以用%s以字符串的形式输入

   puts();输出一个字符串,结尾自动换行。