1、数组的定义
所谓的数组就是指一组具有相同数据类型的数据的有序结合。
一维数组的定义格式为
类型说明符 数组名[常量表达式];
例如
int a[5];
在创建数组时要遵循以下规则:
1)数组名的命名规则和变量名的相同,即遵守标识符命名规则。
2)在定义数组时,需要指定数组的元素个数,方括号中的常量表达式用来表示元素的个数,即长度。
3)常量表达式中可以包含产量和符号常量。但是不能包含变量。
1.2一维数组在内存中的存储
一维数组内存:看任何变量内存,都是将该变量取地址,拖入内存窗口来看。
在监视窗口中对变量名称进行取地址并且将取地址拖入内存中即可查看对应数据所在位置。
在定义数组的一瞬间,数组占据的空间大小就已经确定下来了。
访问越界会出现数据异常
一维数组的存储从低地址到高地址,并且数组元素是从0开始编号的。
2、字符数组
对字符数组初始化有两种方法:
1)c[0]='h';c[1]='e';c[2]='l';c[3]='l';c[4]='o';
2) c[10]="hello";
通常使用c[10]="hello";在C语言规定字符串的结束标志为'\0',并且如果变量数大于的话,系统会对字符串常量自动加'\0',所以字符数组存储的字符串长度必须比字符数组少1字节。否则会出现访问越界会出现数据异常。
案例分析:
在打印数组赋值的时候出现了除数组赋值之外还有“烫”字?
因为在printf通过%s打印字符串时候,原理是依次输出每个字符,当读到'\0'\时,结束打印。然后因为初始化字符数组时,小于字符数组的大小比看到的字符串的长度多1,则出现了访问越界。
今日课堂笔记
一维数组内存:看任何变量内存,都是将该变量取地址,拖入内存窗口来看
在监视窗口中对变量名称进行取地址并且将取地址拖入内存中即可查看对应数据所在位置
sizeof=计算数组所占空间大小
在定义数组的一瞬间,数组占据的空间大小就已经确定下来了
访问越界会出现数据异常
打印数组的每个元素,数组在传递时,元素个数传递不过去
字符串中存储n个字符需要输入n+1个字符,在最后的一个字符串中需要让计算机给其输入00'\0'使得结束,否则会出现乱码
字符串中一定要有结束语‘\n’
初始化字符数组时,一定要让字符数组的大小比看到的字符串的长度多1