初识C语言— —数组

前面我们学完了循环,今天我们就来学习数组!

数组分为一维数组,二维数组等等,他们是一个可以存储相同类型的元素的集合,数组在C语言中扮演着重要的角色,它是许多数据结构和算法的基础。本篇文章将介绍C语言中数组的基本概念,并举例几个基础的例子来帮助理解。

数组的基本概念

在C语言中,数组是由相同类型的元素组成的序列。每个元素都有一个唯一的索引,用于访问和操作该元素。数组的大小是固定的,一旦创建,就不能改变。

数组的创建
int arr[10] = {0};
格式:

数据类型    数组名[最多元素个数]   =    {0(数组元素)};

这里,我们将数组的类型定义为整形,数组名创建为arr,10是我们数组的最多元素个数,并将所有元素初始化为0.

当然了,还有一种写法

int arr1[] = {1,2,3,4,5};

这种写法是直接将数组元素写入数组里,编译器会根据元素个数自动定义数组的大小

你还可以这么写:

int arr2[5] = {1,2,3};

这里,我们将数组最多的元素个数定义为5,后面虽然只写入了三个数,但C语言会自动帮我们补充两个0以达成5。

注意:

[   ] 这里面的东西只能写正整数,不能是变量。(C99之后以及gcc编译器支持,但现在少用了)初学我们默认为只能写正整数。

数组的元素修改

我们都知道数组里的下标是从0开始的,当我们需要找第三个数的时候下标就是2

int arr1[5] = {1,2,3,4,5};
arr1[2] = {7};

这个代码的意思是将arr1数组里下标为2的数据改成7

遍历打印数组:

printf("%d", arr[0]);         这串代码可以打印arr数组里第一个元素,那么,如何打印全部的元素内容呢?

这里我们可以借助循环来打印。

  #include <stdio.h>
  
  int main()
  {
    int arr1[5] = {1,2,3,4,5};                                                                 int i = 0;
    for (i = 0; i < 5; i++)
    {
      printf("%d ", arr1[i]);
    }
     
    printf("\n");
    return 0;    
  }

这里,就有同学会问了:"哎同学!你刚刚不说数组里[ ]里面的不能是变量吗,为什么这里代码却用了变量?"

哈哈,其实,创建数组的时候不能是变量,但访问的时候就可以了。这点要记住。

我们来看结果:

Ps:不用管./a.out是什么意思,看底下那个

二维数组

二维数组在c语言中同样常用,它跟一维数组几乎是大差不差的

int arr[2][3] = {0};

这就是一个 非常简单的二维数组,它由行与列组成。下标都是从0开始。

但是这里要注意,二维数组创建时只能忽略前面的[   ],而不能忽略后面的[   ],前面代表行,后面代表列。至于为什么不能忽略,我举个例子

int arr1[][] = {1,2,3,4,5,6};

你能知道这是几行几列的数组吗?

看不懂。

int arr1[3][] = {1,2,3,4,5,6};

如果改成上面这样呢?

这里是一个三行的数组没错,但是推导不出它是几列呀,你可以是三行2列,三行3列,甚至更大都可以,空出来的补0就好了。但是显然不合理

所以我们改成如下形式:

int arr1[][3] = {1,2,3,4,5,6};

这里是3列,编译器就会开始识别:"哦,这里3列,我把1,2,3看成一行,再把4,5,6看成一行,那么这就是个两行三列的数组。。

所以这里我们就发现个非常重要的结论:二维数组是可以看作是一维数组的,只需要将每行看作一个整体就行,所以后面的指针取地址取得就是二维数组第一行的值(这里还没讲到指针,所以稍微知道一下就可以了)

结语

以上就是今天数组的全部内容。如果有错误欢迎在评论区指出来,感谢大家观看~

小插曲:这篇文章是在平板上写的,因为电脑不在身边,代码的书写与编译也是用云服务器搞的,所以看的会有些蹩脚。1520字数还挺幸运哈哈

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值