c语言一维数组详解

本文详细介绍了C语言中一维数组的概念,创建方法,包括完全和不完全初始化,以及数组下标、元素打印、输入和计算元素个数的方法。通过实例和练习题帮助读者巩固对数组的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

让我看看大家的c语言都学的怎么样了,一维数组会了没

1. 数组的概念

数组是⼀组相同类型元素的集合;

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

 数组中存放的多个数据,类型是相同的。

2. ⼀维数组的创建

类型  变量名称[元素个数];

⽐如:我们现在想存储某个班级的20⼈的数学成绩,那我们就可以创建⼀个数组,如下:

         int math[20]就是在一个名为math的数组中存入了20个变量类型为int的元素;

3.一维数组的初始化

有时候,数组在创建的时候,我们需要给定⼀些初始值,这种就称为初始化的。

那数组如何初始化呢?数组的初始化⼀般使⽤⼤括号,将数据放在⼤括号中。

例如,我们储存某个小组的数学成绩,可以创建一下数组

int math[5]={88,76,89,90,84};

这种每一个元素对应每一个值的叫做完全初始化;

那接下来就讲解不完全初始化:

int math[20]={88,86,95,12};

在这个代码中我们指定数组math20个元素,但是我们只给前四个赋值了,那么其他16个元素默认为0,这就叫做数组的不完全初始化。

接下来我们来看一个错误的初始化:

int math[5]={10,20,30,40,50,60}

我们指定数组math5个元素,但是我们一共给出了6个值放在数组math中,这种初始项大于所设定元素个数的情况叫做错误的初始化,所以要记住,初始项要小于等于所设定的元素个数。

4.数组的类型

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

例如

int math[20]//类型为 int [20];
int math[10]//类型为 int [10];
char name[10]//类型为 char [10];

5.数组的使用

学习数组使用之前我们要了解数组的下标索引

5.1数组下标索引

语⾔规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下 标就相当于数组元素的编号,例如:

int math[10]={1,2,3,4,5,6,7,8,9,10};

那么math[0]=1;

        math[1]=2;

        math[9]=10;

5.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 ", arr[i]);
     }
     return 0;
}

输出结果为:

5.3数组的输入

明白了数组的输出,那么我们可以用scanf进行数组的输入啦

例如:输入10次数字

#include <stdio.h>
int main()
{
     int arr[10] = {0}; 
     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;
}

5.4计算数组元素个数

在遍历数组的时候,我们经常想知道数组的元素个数,那C语言中有办法使⽤程序计算数组元素个数吗? 

当然可以,我们使用关键字sizeof。

sizeof是c语言的关键字,用来计算类型或者变量的大小。

比如int类型的大小为4个字节,char类型大小为1个字节

#include <stdio.h>
int main()
{
   int a=0;
   char b=0;
   int sz1=sizeof(a);
   int sz2=sizeof(a);
   printf("%d\n",sz1);//输出结果为4
   printf("%d\n",sz2);//输出结果为1
   return 0;
}

我们知道数组arr[10]的大小为10倍arr[0],

数组arr[20]的大小为20倍arr[0],

那么任意arr[ ]的大小可以用除法关系来求

int sz=sizeof(arr)/sizeof(arr[0]);

变量sz即为数组arr的个数。

你学会了吗?来作一道题检验一下吧!

题目链接:

https://www.nowcoder.com/practice/bb66c27cb7aa48f9ba7d9f88e4068285?tpId=107&&tqId=33373&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值