一维数组的使用
- 具有相同类型的若干变量按有序形式组织起来,这些按序排列的同类数据元素称为数组
- 数组的元素是连续的(元素的内存地址连续)
- 同一个数组所有的成员都是相同类型
- 一维数组
- 数据类型 数组名 [常量表达式]
- 说明:
- 数组名命名必须规范“标识符的命名规范”
- 方括号中的常量表达式就是数组的长度,也就是数组元素的个数
例如:
int a[10]; //数组a有10元素
float b[20],c[20];
char ch[29];
3. 使用
1. 下标访问
2. 初始化:内存里面可能有原本的值(未知的)
int a[10]={1,2,3,5,5,67,4,4,5,9};
int a[10]={1,2,3};//后面为0
3. 地址连续:%p获取地址,地址连续
int arr[]={1,2,3,4};
for(i=0;i<4;i++)
printf("%p\n",&arr[i]);
- 练习
- 求和
- 逆置
二维数组
- 定义:
int a2[4][6];
#include <stdio.h>
int main(){
int a[10];
int a2[4][6];//四行6列的二维元素
int x =1;
//一行一行访问
int i,j;
for(i=0;i<4;i++){
//访问行
for(j=0;j<6;j++)//访问列
{
a2[i][j] = x++;
}
}
for(i=0;i<4;i++) {
for (j = 0; j < 6; j++) {
printf("%d ", a2[i][j]);
}
printf("\n");
}
printf("***************\n");
//一列一列访问
for(j=0;j<6;j++){
for(i=0;i<4;i++){
printf("%d ",a2[i][j]);
}
printf("\n");
}
return 0;
}
- 分段赋值
int a[3][4]=
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}
- 连续赋值
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
- 部分赋值
int a[3][4]={1,2,3,4};
- 0值初始化
int [3][4]={0};
- 不指定函数
int a[][4]={1,2,3,4,5,6,7,8};
- 不能不指定列数