1.数组的定义
定义:所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。
同种数据类型的集合,一片连续的内存空间。
C语言中,一维数组的说明一般形式如下:
存储类型 数据类型 数组名[元素个数] ;
int a[5];
下标访问数组元素:
(1)从0开始
(2)数组名[下标]
sizeof(数组名) 计算数组的空间大小
sizeof(数组名)/sizeof(数据类型) 数组元素个数
数组名代表数组首元素的地址
2.数组的初始化
数组的初始化:
(1)完全初始化:在定义的时候,给全部元素赋值
int a[5] = {1,2,3,4,5};
(2)部分初始化:在定义的时候,给部分元素赋值,其余没有赋值元素自动赋值为0
int a[5] = {1,2,3};
int a[10] = {0}; --- 全部赋值为0
(3)下标法初始化
int a[5] = {1,[2]=2,[4]=3};
(4)数组具有自动计数功能:
int a[] = {1,2,3};
int a[] = {[4] = 3};
3.数组越界问题
非法访问内存, 段错误。
int a[5] = {1,2,3,4,5};
a[2] = 10;
a[5] = 20; //--- error
a[10] = 30 //--- error
4.感受动态内存
(1)可变数组 (不建议这样去写)
int n;
printf("input n:");
scanf("%d", &n);
int a[n];
注意:可变数组不能进行初始化操作
(2)宏定义
#define SIZE 1024
int a[SIZE];
5.数组赋值
int a[5];
a[0] = 1;
a[2] = 2;
int i;
for(i = 0; i < 5; i++)
{
printf("a[%d]=", i);
scanf("%d", &a[i]);`
}
for(i = 0; i < 5; i++)
{
printf("a[%d]=%d", i, a[i]);
}