一、数组的概念
数组是一组有序数据的集合,下标代表数据在数组中的序号;
用一个数组名和下标来唯一确定数组中的元素,且每一个元素都属于同一数据类型;
数组的创建方式:类型符 数组名[常量表达式 ][ ]……[ ];
二、数组的初始化
1、一维数组:
int arr[m] //表示一个长度为m的整型数组
//给全部数组元素赋初值
int arr1[5]={1,2,3,4,5};
//给部分数组元素赋初值,剩余部分自动赋0
int arr2[5]={1,2,3};
//将数组元素全赋为0
int arr3[5]={0}
//当数组元素个数确定且已赋值时可省略数组长度
int arr4[]={1,2,3,4,5} //确定该数组有5个元素
2、二维数组
float arr[3][4] //表示一个3行4列的浮点型数组
//分行赋初值
int arr1[2][3]={
{1,2,3},{4,5,6}};
//输入所有元素自动分行
int arr2[2][3]={1,2,3,4,5,6};
//可以部分元素赋初值,其他补0
int arr3[3][4]={ {1},{2,3,4,5},{6,7,8,9}};
int arr4[3][4]={ {1},{2,3,4}};
int arr4[3][4]={
{1},{ },{2,3,4}};
//一维长度可以省,二维长度不可省
int arr[2][2]={1,2,3,4}等价于int arr[ ][2]={1,2,3,4}等价于int arr[ ][2]={
{1,2},{ }};
3、字符数组
int arr1[] = { 'a','b','c' }; //'a' 'b' 'c'
int arr2[] = "abc"; //'a' 'b' 'c' '\0'
char *p = "abc"; //指针P开辟内存空间,指向abc地址
例题1:
int arr1[] = "asd";int arr2[] = "asd";
if (arr1 == arr2) //数组名代表数组首元素的地址
{
printf("hehe\n"); //将无法输出,数组指向首元素
}
例题2:
char *p2 = "asd"; //指针指向所有字符的地址
if (p1 == p2)
{