1 一维数组的定义: 类型 数组名[ 元素个数]
注意点: [ ] 里面的个数必须是一个固定值 ,可以是一个常量或是一个常量表达式。绝对不能使用变量或是变量表达式来表示元素个数。
int a[5] // 整形常量
int b['A'] // 字符常量
int c[4*7] // 整形常量表达式
2 一维数组的存储
定义数组时,系统将按照数组的类型和元素个数分配一段连续的存储空间来存放数组元素。例如数组int a[3] 占据了连续12字节的存储空间。(在64位编译器环境下,一个int 类型占4个字节)要特别注意的是,数组名代表着整个数组的地址,也就是数组的起始位置。其实a 并不是变量,而是常量,它代表着数组的地址。数组a 的地址是ffc1,a[0]的地址是ffc1,因此a ==&a[0],即第一个元素的地址就是整个数组的地址。
3 一维数组的初始化
int a[2] ={4, 8};C 语言中编译器是不会对数组下标 越界进行检查的,所以访问数组元素时要小心
数组初始化时的赋值方式只能适用于数组的定义,定义之后只能一个元素一个元素的赋值(也就是说数组不能整体赋值)
int a[3]; a[3] = {3, 8, 9}; // 错误写法
原因分析: 首先a[3] 代表访问数组的第四个元素,数组下标越界。其次给 a[3]赋值也应该是int类型的整数,不应该是{}
a = {2. 4.5}; //错误写法 错误原因:a是数组名,代表着数组的地址,它是个常量,给常量赋值那肯定错了
4 一维数组与函数 参数
一维数组元素作为函数实参,与同类型简单变量作为实参一样,是单向的值传递,即数组元素的值传递给形参,形参的改变不影响 实参
网友评论