本帖最后由 追猫少年 于 2017-2-12 17:00 编辑
数组是指具有相同类型的数据组成的序列,是有序集合。 数组中的每一个数据称数组元素或下标,分为 一维数组,二维数组和多维数组。
注意:数组元素有序不是指元素大小顺序
C 语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中
变量的值。例如[mw_shl_code=c,true]
int n;
scanf("%d",&n);
int a[n];[/mw_shl_code] 这样是不行的。
需要注重的是一维数组,下面内容也是关于这方面的
一维数组的存储
每个数据元素占用相同的字节数,与基类型的字节数相同,例如 int a[] ,一个元素占4个字节。 初始化: 可以对数组所有元素赋初值,部分元素赋初值。还可以动态赋值,如下:
还有一维数组中最为重要的一种算法,称为 冒泡排序法。例如将10个数据进行排序
其他几维数组就不多介绍了。 然后是字符数组,顾名思义是存放字符型数据的数组,每个元素存放的都是单个字符。
如果花括号中提供的初值个数超过数组长度,将产生错误,如果初值个数少于数组长度时,剩余的元素自动用空格补足,例如
char c[10] = {'C',' ','P','r','o','g','r','a','m'}; 其余元素默认为空字符(‘\0’) 用一个个字符常量来初始化字符数组很麻烦,其实,可以用一个字符串常量来初始化字符数组: char str[] = {"This is a string"}; 这时我们定义了一个长度为17的数组。为什么是17呢?编译器在字符串常量的最后自动增加了一个字符结束标志'\0'。 这就是字符串变量与字符数组的区别。 有关字符串的函数: 输入(scanf),输出(printf)这两个是我们最熟悉的,不用过多介绍, gets函数:可以完整的读入带有空格的字符串。 puts函数:从起始地址开始输出存储单元的字符,遇到第一个‘\0’符号是结束,并自动换行。 strcat函数(字符串连接函数):将两个不同字符串连接成一个。 strcmp函数(字符串比较函数):比较两个不同的字符串大小。 strlen函数(字符串长度函数):计算字符串的实际长度,不含结束标志‘\0’,并作为函数返回值。
|