目录
1 . 一维数组的创建
type arr_name[常量值];
存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的⼤⼩和数组的元素类型。
type是指数组类型,它的类型可以是int ,char,short,float等,也可以自己去定义。
arr_name是数组名字。
[ ]中常量值为数组的大小,这个大小可以根据需要定制。
2 . 一维数组的初始化
//完全初始化
int arr[5]={1,2,3,4,5};
//不完全初始化
int arr[5]={1,2};
3 . 一维数组的使用
数组的下标
//例如
int a[10]={1,2,3,4,5,6,7,8,9,10}
//其中
1 2 3 4 5 6 7 8 9 10 //下标
0 1 2 3 4 5 6 7 8 9
在数组中下标是从0开始的。
数组元素的打印
#include<stdio.h>
int main()
{
int i = 0;
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
for ( i = 0; i < 10; i++) {
printf("%d\n", a[i]);
}
return 0;
}
数组的输入
#include <stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
for(i=0; i<10; i++)
{
scanf("%d", &arr[i]);//多组输入
}
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
4 . 一维数组在内存中的储存
#include<stdio.h>
int main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d\n", sizeof(a));//sizeof(a)是求数组所占的空间大小
return 0;
}
5 . sizeof计算数组元素个
#include<stdio.h>
int main()
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d\n", sizeof(a)/sizeof(a[0]));//sizeof(a)是求数组所占的空间大小
//sizeof(a[0])是一个元素所占字节大小
return 0;
}
1 . 二维数组的创建
type arr_name[常量值1][常量值2];
其中常量值1表示行,常量值2表示列。在二维数组中的元素个数为常量值1 * 常量值2
例如:
//用一个3行2列的例子
int a[3][2]={1,2,3,4,5,6}
1 2
3 4
5 6
二为数组是由多个一维数组成的。
2 . 二维数组的初始化
int a[2][3]={1,2,3,45,6}//完全初始化
int a[2][3]={1,2,3}//不完全初始化
3 . 二维数组的使用
二维数组的下标
这是二维数组的表示方式
二维数组的输入输出
#include <stdio.h>
int main()
{
int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
int i = 0;
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<5; j++)
{
scanf("%d", &arr[i][j]);
}
}
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<5; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
4 . 二维数组在内存中的储存
#include <stdio.h>
int main()
{
int arr[4][6] = { 0 };
int i = 0;
int j = 0;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 6; j++)
{
printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
}
}
return 0;
}
练习:将多个字符从两端移动,向中间汇聚
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main()
{
char arr1[] = "hello word!!!!!!!!!!";
char arr2[] = "####################";
int left = 0;
int right = strlen(arr1)-1;
while (left<=right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
sleep(1000);//缓慢输入
left++;
right--;
}
return 0;
}