C语言中的数组
数组用来存储一系列相同类型的数据。数组有一个数组名,访问其中元素的时候通过下标来访问。
1.数组的定义(声明)
数组定义的语法:
DataType ArrayName[length];
DataType表示数据类型,通常为基本数据类型:int,double,char
ArrayName表示数组名称,该名称定义方式和定义变量一样,可以是任意的,但不能是关键字,不能以数字,特殊符号开头。
length表示该数组的长度,length可以是常量,变量,但必须是整数。
数组下标可以是常量,变量,但必须是整数。
例如:
int array1[20]; //声明一个长度为20的整形数组
double array2[30]; //声明一个长度为30的double类型数组
char array3[20]; //声明一个长度为20的char类型数组变量,可以存储20个字符
int a=10;
int array4[a];
2.数组的初始化
数组的初始化使用memset函数,具体使用方法如下:
int array1[20]; //声明一个长度为20的整形数组
double array2[30]; //声明一个长度为30的double类型数组
char array3[20]; //声明一个长度为20的char类型数组变量,可以存储20个字符
memset(array1,0,sizeof(array1));
memset(array2,0,sizeof(array2));
memset(array3,0,sizeof(array3));
memset函数第一个参数是数组名,就是需要初始化的数组,第二个参数是0,第三个参数是需要分配的长度(占用的内存空间),用sizeof()函数来获取。
3.数组的赋值以及获取值
数组可以使用下标来给其中的某一个数据赋值,也可以使用下标来获取该数组某一位置的值。
实现方式如下:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(int argc, char *argv[]) {
int array1[20]; //声明一个长度为20的整形数组
double array2[30]; //声明一个长度为30的double类型数组
char array3[20]; //声明一个长度为20的char类型数组变量,可以存储20个字符
memset(array1,0,sizeof(array1));
memset(array2,0,sizeof(array2));
memset(array3,0,sizeof(array3));
int i,j;
for(i=0;i<20;i++)
{
array1[i]=i*10; //赋值
}
for(j=0;j<20;j++)
{
if(j!=0&&j%5==0) //实现换行
{
printf("\n");
}
printf("%d\t",array1[j]); //输出
}
return 0;
}
运行结果如下:
0 10 20 30 40
50 60 70 80 90
100 110 120 130 140
150 160 170 180 190
数组也可以从键盘获取输入值。实现方法如下:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(int argc, char *argv[]) {
int array1[20]; //声明一个长度为20的整形数组
double array2[30]; //声明一个长度为30的double类型数组
char array3[5]; //声明一个长度为20的char类型数组变量,可以存储20个字符
memset(array1,0,sizeof(array1));
memset(array2,0,sizeof(array2));
memset(array3,0,sizeof(array3));
int i,j;
for(i=0;i<5;i++)
{
printf("please input the value of array3[%d]:",i);
scanf("%lf",&array2[i]);
}
for(j=0;j<5;j++)
{
printf("%lf\t",array2[j]);
}
return 0;
}
二维数组
定义方式:
DataType ArrayName [length1][length2];
DataType表示数据类型,通常为基本数据类型:int,double,char
ArrayName表示数组名称,该名称定义方式和定义变量一样,可以是任意的,但不能是关键字,不能以数字,特殊符号开头。
可以将该数组看成是一个length1 * length2的一个矩阵。
length表示该数组的长度,length可以是常量,变量,但必须是整数。
数组下标可以是常量,变量,但必须是整数。
二维数组的定义方式和一位数组是一样的,在这里就不在赘述。
字符串和字符数组
如果一个字符数组的末尾字符为空字符‘\0’,则这个字符数组就变成了一个字符串。