一、数组的概念
数组:一组数;或者说是一组相同类型的元素集合。
二、一维数组的创建和初始化
数组的初始化
此时注意
char arr5[] = {'a','b','c'};
char arr6[] = "abcd";
之间的区别
输出结果如下
这是因为arr6输出的是字符串,结束标志是'/0',而arr5输出的是一个一个的字符,不知道到什么时候才会遇到'/0'字符让其停止,所以出现乱码的情况。
三、一维数组的运用
(1)输出一维数组中的元素,代码如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int arr1[5] = { 1,2,3,4,5};
int arr2[] = { 1,2,3,4,5,6 };
char ch1[5] = { 'a','b','c','d'};
char ch2[] = "abcdef";
int i = 0;
int sz1 = sizeof(arr1) / sizeof(arr1[0]);
for (i = 0; i < sz1; i++)
{
printf("%d ", arr1[i]);
}
int sz2 = sizeof(arr2) / sizeof(arr2[0]);
for (i = 0; i < sz2; i++)
{
printf("%d ", arr2[i]);
}
printf("%s\n", ch1);
printf("%s\n", ch2);
return 0;
}
输出结果如下
注意:输出整形一维数组时要用循环方式输出,输出字符型一维数组直接输出。
上述代码用于计算数组个数,sizeof(arr)计算数组元素总长度 除以 sizeof(arr[0])单个元素数组长度=数组中元素个数
(2)用指针形式输出一维数组中的元素,代码如下
int main()
{
int i = 0;
int arr[4] = { 1,2,3,4};
int* p = &arr[0];
for (i = 0; i < 4; i++)
{
printf("%d ", *p);
p++;
}
}
输出结果如下
四、一维数组的存储方式
代码如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = { 0 };
for (i = 0; i < 10; i++)
{
printf("&arr[%d]= %p\n", i, &arr[i]);
}
}
输出结果如下
从结果不难看出,一维数组的每位元素所占空间大小为4字节,而且是连续存储的,且地址是由低到高存放的!