数组(1)

一,数组的概念 数组是一组相同类型元素的集合。

1.数组中存放的是一个或多个数据,但数组元素个数不能为零。

2.数组中存放的多个数据类型是相同的。数组分为一维数组和多维数组。多维数组一般比较多见的是二维数组。

eg:int a=10; char ch='w';(变量)

1,2,3,4,5,6,7,8,9,10---这是一组数据

首先1,2,3,4,5,6,7,8,9,10是多个元素并且他们的类型都是整型int

二,一维数组的创建和初始化

1,数组创建

模板:type(数据类型)  arr_name(数组名)[常量值]

存放在数组中的值被称为元素

  1. 数组的数据类型和变量的数据类型基本上是一样的,可以是char,short,int,float等,也可以是自定义类型
  2. 那数组名同样的和变量名是一个地位的存在,就是数组的名字,这个名字根据实际情况,起的有意义就行
  3. 常量值是用来表示你这个数组中有几个元素的,用来指定数组大小

eg:int arr[5]表示该数组由五个整型元素组成,这个数组的名字是arr;

char ch[8]:表示该数组由八个字符型元素组成,这个数组的名字是ch;

2,初始化

有时候数组在创建的时候我们需要给定一些初始值,这种就称为初始化。那数组如何初始化呢?数组的初始化一般使用大括号将数据放在大括号中。我们数组的初始化。

int main()
{
int data[10]={1,2,3,4,5,6,7,8,9,10};//完全初始化
int data2[10]={1,2,3,4,5};//不完全初始化,剩余的元素默认初始化为0
int data3[3]={1,2,3,4};//错误的初始化,初始化的元素个数大于常量值


int data4[5]={1,2,3,4,5};
int data5[]={1,2,3,4,5};//5可以省略掉,就算你不写,他也会根据你初始化的元素来判断常量值, Data5和data4是等效的。
return0;
}

所以,数组如果初始化了,也可以省略掉数组的小制定。编译器会根据数组的初始化内容来确定数组的真实大小。

eg:int arr[]={1,2,3,4,5};的编译结果是1,2,3,4,5;

int arr[5]={1,2,3,4,5};的编译结果是1,2,3,4,5;

int arr[6]={1,2,3,4,5};的编译结果是1,2,3,4,5,0;

三,数组的类型

数组也是有类型的。数组算是一种自定义类型。去掉数组名,留下的就是数组的类型。

int main()
{
//int a;
//char c;

int arr[4];//int[4]
char ch[5];//char[5]
 
return 0;

}

由此可见,数组的类型不等于元素的类型,数组的类型和元素的类型以及元素的个数有关

四,一维数组的使用

1,数组下标

 C语言规定数组是有下标的,下标从零开始。假设数组有n个元素,最后一个元素的下标是n-1,下标就相当于数组元素的编号。

int arr[10]={1,2,3,4,5,6,7,8,9,10};
数组12345678910
下标0123456789

下标的作用就是:比如我们要送外卖,送给1,那我们就需要找他的门牌号,也就是他的下标,为0。

在C语言中,数组的访问提供了一个操作符[],这个操作符叫下标引用操作符。

有的下标访问操作符,我们就可以轻松地访问到数组的元素了。比如我们访问下标为7的元素,我们就可以使用arr[7]。想要访问下标是3的元素,我们就可以使用arr[3],如下代码:

int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",arr[7]);//得到的结果是8,因为8的下标是7
printf("%d\n",arr[3]);//得到的结果是4,因为4的下标是3
return 0;
}
2,数组元素的打印

接下来如果想要访问整个数组的内容该怎么办呢?

只要我们产生数组所有元素的下标就可以了,那我们使用for循环产生0到9的下标,接下来使用下标访问就行了,如下代码:

#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++)
{
printf("%d\n",arr[i]);
}
return 0;
}
3,数组的输入
int main()
{
int arr[10]={0};//不完全初始化,元素全被初始化为0;
//那我现在想输入十个数
int i=0;
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<10;i++)
{
printf("%d ",arr[i]);
}

借助于循环,一个一个输入,一个一个读出。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值