总结整理一下C语言数组的相关内容:
首先,关于数组,有以下几点:
1.数组是一组有序数据的集合。数组中各数据的排列都是有一定规律的,下标代表数据在数组中的序号。
2.用一个数组名(如:S)和下标(如:1)来唯一的确定数组中的元素。
3.数组中得买一个元素都属于同一个数据类型。不能把不同数据类型的数据放在同一个数组中。
一,一维数组
1.创建:
一维数组的格式为:type_t(元素类型) + arr_name(数组名)+ [const_n](数组大小,为一个常量表达式)
2.初始化:在创建数组的同时给数组的内容一些合理的初始值。
看几种数组初始化的例子
int arr1[10] = {1,2,3}; | 这是数组的不完全初始化,实际数组内容为:{1,2,3,0,0,0,0,0,0,0} |
int arr2[]= {1,2,3,4}; | 这是数组的完全初始化,可以根据{ }内的内容确定[ ]内的数字,即数组大小 |
int arr3[5] {1,2,3,4,5}; | 这是数组的完全初始化,[ ]内的数字与{ }类的元素个数相等 |
int arr4[3]={'a','b','c'} | 这是数组的完全初始化,实际数组内容为:{a,b,c} |
int arr5[3]={'a',98,'c'} | 这是数组的完全初始化,字母b的ASCII值为98,所以这个数组的实际内容也是:{a,b,c} |
int arr6[ ]="abcdef" | 这个数组中有7个元素,分别为:‘a’,‘b’,‘c’,‘d’,‘e’,‘f’与‘\0’。C语言中‘\0’是字符串的标志,因此该数组可看做字符串 |
3.使用:(1)数组是使用下标来访问的,下标是从0开始:
下标引用操作符:[]
(2)数组的大小可以通过计算得到:
如:int arr[10];
int sz = sizeof(arr)/sizeof(arr[0]);
4.存储:随着数组下标的增长,元素的地址也在有规律地递增,因此可以得出:数组在内存中是连续存放的。
二,二维数组
二维数组常称为矩阵。把二维数组写成行和列的排列形式,可以有助于形象化地理解二维数组的逻辑结构。
1.创建:和一维数组相似,二维数组的格式为:
type_t(元素类型) + arr_name(数组名)+ [常量表达式](一般代表行)[常量表达式](一般代表列)
2.初始化:
(1)可以分行给二维数组赋初值。如:int arr[3][4]= {{1,2,3,4},{5,6,7,8},{9,10,11,12}}
(2)也可以将所有元素写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值。
如:int arr[3][4]= {1,2,3,4,5,6,7,8,10,11,12}
(3)或者对部分元素赋初值。如:int arr[3][4]= {{1},{2},{3}},int arr[3][4]={{1},{2,3}}
(4)如果对全部元素赋初值,则定义时对第一维的长度可以不指定,但对第二维的长度必须指定。
3.使用:利用下标引用操作符[ ]。如:arr [i][j]
4.存储:C语言中,二维数组的元素排列顺序为按行,连续存放的,和一位数组一样,随着数组下标的增长,元素的地址同样在有规律地递增,数组在内存中仍是连续存放的。
三,而三维数组乃至更多维数组的一些内容与一维数组与二维数组是大同小异的。
除此之外,再总结一下字符数组的相关内容:
四,字符数组:
字符型数据是以字符的ASCII代码存储在存储单元中的,一般占一个字节。由于ASCII代码也属于整数形式,因此一般情况下把字符类型归纳为整型类型中的一种。
1.创建:与定义整数型数组的方法类似:type_t(元素类型) + arr_name(数组名)+ [const_n](数组大小)
例如:char arr[10];
2.初始化:像一维,二维整数型数组一样,字符型数组的初始化也可以把各个字符依次赋给数组中的各元素。
同时,如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数大于数组长度,则会出现语法错误。如果初值个数小于数组长度,则只将这些字符赋给前面的元素,其余元素自动定为空字符(‘\0’)。
3.使用:利用下标引用操作符[ ]来实现数组元素的引用。
4.存储:在内存中按顺序,连续存放,字符型元素一般占一个字节的大小。
5.字符串和字符串结束标志:\0
C系统在用字符数组存储字符串常量时会自动加上一个‘\0’作为结束符,在程序中往往依靠检测‘\0’的位置来判定字符串是否结束,而不是根据数组长度来决定字符串长度。
关于数组的内容,就先整理这些,更深入的知识以后再做添加整理,最后,如果有什么疏漏或出错的地方,欢迎大家指正。