数组
1.1一维数组
数组:一组相同类型元素的集合
①数组的定义
//数组:存储相同数据类型的集合,在物理上占用连续的内存
int main()
{
int arr[10] = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//定义数组
int arr2[10] = {
0 };//数组内10个元素初始值都是0
int arr3[10] = {
1, 2, 3, 4 };//数组后面6个没有被初始化的元素是0
int arr4[10];//数组元素是默认值
//printf("%d\n", arr[3]);//打印下标为3的元素也就是第四个,数组的下标是从0开始
int i = 0;
for (i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
return 0;
}
②字符类型数组
int main()
{
char crr[5] = {
'a', 'b', 'c', '\0' };//定义字符类型的数组
char crr2[] = {
'a', 'b', 'c', 'e' ,'f'};//中括号里如果没有写数组大小,根据存储的元素个数默认
char crr3[5] = "abcd";//字符串后面默认有\0,所以长度为5只能输进去4个
printf("%s\n", crr);//%s遇到0停止
printf("%s\n", crr2);
printf("%s\n", crr3);
//abc
//abcef烫烫烫烫烫蘟bc
//abcd
return 0;
}
③用函数打印数组内元素
//打印数组内的元素
void Show1(int arr[],int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void Show(int *arr, int len)
{
int i = 0;
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);// arr[i]=*(arr+i)
}
printf("\n");
}
int main()
{
int arr[10] = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int len = sizeof(arr) / sizeof(arr[0]);
Show1(arr,len);
Show(arr, len);
return 0;
}
a)数组名代表首元素的地址
b)arr[i]=*(arr+i)
c)arr+i:arr加几个取决于arr的类型,该题中arr+1加4,因为int类型
d)int len = sizeof(arr) / sizeof(arr[