C语言_初成长_数组

来源:互联网 发布:淘宝客服名称大全 编辑:程序博客网 时间:2024/05/16 22:01

在C语言里面,数组的使用是非常频繁的,但是对于数组的使用,经常会有一些细节方面的问题,导致产生一些错误,所以我想对一维数组和二维数组的初始化和使用写一个小小的总结。

数组的创建:  数组是一些相同类型元素的集合,所以对数组的创建格式是   类型 + 自定义标识符 + [ ]   比如  int  arr1[5];    char arr2[10];  int arr3[5][10];

                        在一维数组中cha arr1[ ] 里可以不用写数字,但是对于二维数组arr4[ ][ ],前一个可以不写但是后一个必须写,可以不知道有多少行,但是必须知道一行有多少个元

                        素,就是可以 char arr3[][10]; 但是不能 char arr3[ ][ ]; 或者 char arr3[5][ ];

                        对于int arr[ ],在[ ]里,只能填常量或者常量表达式,不能填变量比如  int a=3;  的a 。

数组的初始化:  初始化一般在创建数组就初始化了,int arr1[ ]={0};  int  arr2[5]={0};   char arr1[5][10]={0};

                           对于char arr[]={1,2,3};数组的元素个数是3,对于char arr[]="abc";数组元素个数为4,因为对于没有定义长度的数组最后一个元素默认以“\0”结束。

数组的使用:  如果要给arr[ ]赋值,需要给数组中指定的元素赋值,arr[0]为第一个元素,arr[4]=5就是给第5个元素赋值为5。

                        如何输出一个数组?printf("%d",arr[]);或者printf(("%d",arr);都是错误的,输出数组只能把该数组的元素一个一个输出,可以用到for(;;)循环,比如输出arr[10]; 

                        for(i=0;i<10;i++)          {        printf("%d ",arr[i]);   }                        

数组在内存中的保存: 在一维数组里,元素是一个一个依次保存的,所以知道首元素的地址和数组长度,就可以yi'ci把一个数组传给函数,是把这个数组的首元素地址传给函数,

                                     所以函数不再创建临时数组,这样对储存空间的占用太大,所以在函数里对数组是可以进行直接修改的。

                                     在二维数组里,元素依然是一个一个保存的,虽然在理解里,可以把二维数组理解成一个矩阵一样,但其实在内存里,第二行的行数保存在第一行最后一个

                                     元素地址的后面。所以对二维数组,我个人认为也可以这样理解,其实二维数组也是一个一维数组,只不过每个元素多了一个下标。