文档介绍:第6章数组
构造数据类型之一;
数组:有序数据的集合,用于存贮较大量的
相同类型的数据元素,用数组名标识;
元素: 一个数组可以分解为多个数组,元素
属同一数据类型,用数组名和下标确定;
定义一维数组的一般形式为:
类型符数组名[常量表达式];
数组名的命名规则和变量名相同
如 int a[10];
数组名
注意: 数组名不能与其它变量名相同。
定义一维数组的一般形式为:
类型符数组名[常量表达式];
数组名的命名规则和变量名相同
如 int a[10];
数组长度
定义一维数组的一般形式为:
类型符数组名[常量表达式];
数组名的命名规则和变量名相同
如 int a[10];
10个元素:a[0],a[1],a[2],…,a[9]
每个元素的数据类型
a[0]
a[1]
a[2]
a[3]
…
a[7]
a[8]
a[9]
[ ] :数组运算符
单目运算符
优先级(1)
左结合
不能用( )
例 int data[5];
data[5]=10; //C语言对数组不作越界检查, 下标超范围会引起死机或程序错误
定义一维数组的一般形式为:
类型符数组名[常量表达式];
int a[4+6]; 合法
int n=10;
int a[n];
不合法
#define FD 5
main()
{
int a[3+2],b[7+FD];
……
}
//int型在不同的机器,不同的编译器中的字节数不一样,,
printf("int:%d\n",sizeof(int));//char型的字节数为1printf("char:%d\n",sizeof(char));//short型的字节数为2printf("short:%d\n",sizeof(short));//long型的字节数为4printf("long:%d\n",sizeof(long));//float型的字节数为4printf("float:%d\n",sizeof(float));//double型的字节数为8printf("double:%d\n",sizeof(double));
sizeof()—长度运算符,它的作用是求某类型或某变
量类型的字节数。
数组定义后,系统将给其分配一定大小的内存单元,其所占内存单元的大小与数组元素的类型和数组的长度有关。
数组所占内存单元的字节数= 数组大小× sizeof(数组元素类型)
例 int a[6];
数组名表示内存首地址,是地址常量
编译时分配连续内存
内存字节数=数组维数*sizeof(元素数据类型)
int a[6]共占用12字节存储空间
一维数组中的各个元素在内存中是按照下标规定的顺序存放在内存中的。我们知道,在内存中是以字节为基本单位来表示存储空间的并且在内存中只能按照顺序的方式存放数据。
100
102
108
110
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
104
106
a
112
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式: 数组名[下标]
其中:下标可以是常量或整型表达式,如为小数时,C编译将自动取整。
例 int a[10];
printf(“%d”,a); ()
必须 for(j=0;j<10;j++)
printf(“%d\t”,a[j]); ()
a[5]
a[i+j]
a[i++]x[3]=b1[1]+b1[0];
怎样引用一维数组元素
怎样引用一维数组元素
对10个数组元素依次赋值为0,1,
2,3,4,5,6,7,8,9,要求按逆序输出。
解题思路:
定义一个长度为10的数组,数组定义为整型
要赋的值是从0到9,可以用循环来赋值
用循环按下标从大到小输出这10个元素