所谓数组,就是一个集合,里面存放了相同类型的数据元素,且是由连续的内存位置组成的
一、一维数组
1.定义方式:
1)数据类型 数组名[数组长度];
2)数据类型 数组名[数组长度]={值1,值2,...};
3)数据类型 数组名[]={值1,值2,...};
数组长度的计算方法:sizeof(数组名)/sizeof(数组名[0])
strlen求字符串长度
不完全初始化,剩下的默认为0
常使用# define MAXN 常量 int arr[MAXN]定义数组,这样改一个常量就可以全改
数组可以用来计数,例,count[response]++;
char arr2[]={‘a','b','c'};没有\0,电脑会自己补充后面的内容,直到遇见\0
static静态存储数组没有初始化,所有元素自动赋0;
(auto)动态存储数组没有初始化,所有元素为随机值,动态数组初始化了一部分元素,剩下的都为0
2.数组名用途
1)统计整个数组在内存中的长度
2)获取数组在内存中的首地址
3.输入输出
数组从0开始计数
数组元素:数组名[下标]
下标取值范围:[0,数组长度-1]
下标不能越界
int a[10],不能引用a[10]
输入
while((str[i]=getchar())!='\n'){
i++}
str[i]='\0';
for(i=0;i<n;i++){
scanf("%d",&arr[i];
}
getchar()避免\n对结果影响
输出:
for(i=0;i<5;i++){
putchar(t[i]);//printf("%d",t[i]);
}
二、二维数组
1.定义方式
1)数据类型 数组名[行数][列数];
2)数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};//最直观
3)数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
4)数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};//行数可省略,列数不能省略
查看行数sizeof(数组名)/sizeof(数组名[0])查看列数sizeof(数组名[0]/sizeof(数组名[0][0])
2.数组名用途
1)查看二维数组所占内存空间sizeof(数组名) 查看第一行占用内存sizeof(数组名[0])
2)获取二维数组首地址
3.输入输出
二维数组的输入
for(i=0;i<m;i++){标签:语言,数据类型,数组名,数组,列数,sizeof,数据 From: https://blog.51cto.com/u_15901728/6006379
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}