当我们需要存放多个同类型数时,如果单单使用定义符号类型然后一个一个存的话显然就会太烦琐了如:int a=0;.....。那有没有什么方法能一次性存放完许多同类型的数呢?数组的出现就可以解决这个问题,因为数组可以一次性存放完多个同型类型的数。下面就让我们一起学习数组的使用方法。
//基本语法如下
type arr_name[常量值];
type 就是我们存放数据的类型,可以是:char,int,short,float 等,也可以自定义类型。
arr—name 就是数组的名字,可以根据自己的需要取一个有意义的名字。
[ ] 中的常量值是用来指定数组大小的,这个根据实际需求输入。
//完全初始化
int arr[4]={1,2,3,4};
//不完全初始化
int arr[4]={1};//第一个元素初始化为1,其余的默认初始化为0
也可以不写常量值直接输入元素,它会自动匹配常量值的。
int arr[]={1,2,3,4};
数组也是有类型,它算是一种自定义类型。数组去掉组名后,剩下的就是类型如: int arr[10]的类型就是int [10],它的类型会始终与数组存放的元素类性一致,比如存放的元素是整性,那么数组的类型就是整形。
数组的下标时从0开始的然后一次往后递增1,即数组第一个数的下标是0,第二个数是1.
如果当我们打印数组第6个数的时候,应该输入其下标5
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,0};
printf("%d",arr[5]);
return 0;
}
通过for循环我们可以输入和输出数组。
int main()
{
int arr[10] = { 0 };
int i;
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);//数组的输入
}
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);//数组的输出
}
return 0;
}
//基本语法如下
type arr_name[常量值1][常量值2]//可以理解为行和列
//完全初始化
int arr1[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};
//不完全初始化
int arr2[3][5]={1,2};
//按照行初始化
int arr3[3][5]={{1,2},{3,4},{5,6}};
//第一个{}里面的元素放在第一行,第二个{}里面的数放在第二行
//比如第一行里的数为1 2 0 0 0
//第二行的数为3 4 0 0 0
二维数组必须要写常量值2,常量值1可以不写
int arr[][5]={1,2,3,4,5,6};
int main()
{
int arr[3][5] = { 0 };
int i;
for (i = 0; i < 3; i++)
{
for(int j=0;j<5;j++)
{
scanf("%d", &arr[i][j]);//数组的输入
}
}
for (i = 0; i < 3; i++)
{
for(int j=0;j<5;j++)
{
printf("%d ", arr[i][j]);//数组的输出
}
}
return 0;
}
sizof可以计算类型或者变量的大小
#include
int main()
{
int arr[10] = { 0 };
printf("%d", sizeof(arr));
return 0;
}
因为整数一个元素占4个字节,所以打印sizeof(arr)就是40
要想打印数组的元素个数我们只需要用sizeof算出数组的长度,然后除去一个元素的长度就可以了
#include
int main()
{
int arr[10] = { 0 };
printf("%d", sizeof(arr) / sizeof(arr[0]));
return 0;
}