这次我们来简单对数组的知识做一个小结。
数组的定义:
数组是一组相同类型元素的集合。
数组的创建方式:
<数组类型> 数组名[数组大小]
我们来建立一个数组来举一个例子,如下:
#include <stdio.h>
int main()
{
int arr1[10];
char arr2[5];
int arr3[3+3];
char arr4[10];
double arr5[20];
return 0;
}
以上创建的数组都是合法的。在数组的创建中,数组类型可以是任意数据类型,而[ ]中的常量可以是一个表达式,但是绝对不可以是变量。
数组初始
数组创建过程中给数组初始值,即初始化
如下:
int arr[5]={
1,2,3,4,5};
int arr2[]={
1,2,3};
char arr3[4]={
'a','b','c'};
char arr4[5]="abcdef";
特别的:
1.如果数组不想指定大小,那么就得初始化,这时候数组的大小就由数组初始化的内容来决定,比如数组arr2。
2.如果数组大小已经确定,但并未给数组初始值或者初始值个数小于数组大小,那么剩余空间的初始值默认为零。当然了,初始值的个数大于数组大小也是不可以的。
区别不同的数组存储
char arr1[]="abcd";
char arr2[]={
'a','b','c','d'};
char* p="abcde";
数组arr1中的元素是5个,在数组开辟的内存块中存储内容为’a’,’b’,’c’,’d’,’\0’。
数组arr2中的元素是4个,数组开辟的内存块中存储内容为’a’,’b’,’c’,’d’。
第三种写法中,也能够打印出字符abcde,p只存放’a’的地址。
特别的:数组arr2在输出时,’\0’是字符数组的结束标志,如果没有’\0’,那么数组在输出时会因为找不到结束标志出现乱码。
一维数组
之前在操作符里面介绍过[ ]下标操作符,其实它就是一个数组访问的操作符。
1.数组是使用下标来访问的,并且下标是从0开始的。
2.数组的大小可以通过计算得到
int arr[5];
int size=sizeof(arr)/sizeof(arr[0]);
一维数组的存储方式
通过下面一段代码
#include <stdio.h>
int main()
{
int a[10] = { 0 };
int i = 0;
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
{