c语言数组详解(初学者这一篇就够了,看了不会打我)

3 篇文章 3 订阅
1 篇文章 1 订阅

C语言数组详解
重要!!!欢迎对撸代码有兴趣的同学一起交流,大学生也可!!!带你一起写项目!QQ:1324252797
视频讲解:https://space.bilibili.com/440581684

在这里插入图片描述

1.数组:储存数据类型相同的一系列元素

例如 int a[100]; 在这里a数组储存100个int型元素,在这里 [] 这个符号就是告诉计算机 a 是一个数组。

值得一提的是数组的下标访问数组的,数组中的a[0] 一般表示你初始化的第一个值。

2.初始化数组

前面介绍过了,数组可以储存数据类型相同的一系列元素,所以初始化数组必不可少的一步就是告诉计算机这个数组储存的数据类型

int a[10]={1,33,0,919,3,199} //int型a数组初始化值为1,33,0,919,3,199

那么有同学会问了:那是不是也要告诉系统这个数组储存的元素个数???
在这里插入图片描述
还真的不一定哦!!!

借着这个话题我们来了解一下数组元素不匹配的问题。(举例说明)

数组状态出现情况
int a[2]int a[2]={1,2} 元素与 [ ]内 数字相等a[0]=1 a[1]=2
int a[2]int a[2]={1} 元素与小于[ ]内数字a[0]=1 a[1]=0
int a[2]int a[2]={1,23,55} 元素与大于[ ]内数字系统报错

还有一种情况 int a[] , []内为空白这样就没有告诉计算机元素的个数,但是计算机会根据初始化列表确定数组的大小,这样就可以有效防止初始化值的个数超过数组的大小。

在这里插入图片描述

2.1.拓展知识
C99以后,新增了指定初始化器。指定初始化器可以指定初始化第几个元素。如 int a[3]= { [2] = 3} , 把 a[2] 初始化为3,这个比较复杂,仅作为了解。

3.数组元素赋值
以下面代码为例:

#include<stdio.h>
int main(void)
{
	int a[10];
	for(int i=0;i<10;i++)
	{
		a[i]=i;
		printf("%2d\n",a[i]);
	}
	return 0;
}

输出结果如下:
在这里插入图片描述
这里有几点值得注意:

  • 这行代码中 a[i]=i,规定数组 [ ] 中不能有变量(未初始化),但这里用了 i 却可以,是因为在这之前 i 已经被初始化一个值。
  • printf("%2d\n",a[i]); 这行代码中有很多新手会写成 &a[i] ,往往输出会得到一串奇怪的数字,这是为什么?我们先仔细阅读下面这篇文字。

1.数组名代表数组首元素的地址
2. 数组的地址需要取地址符&才能看到---->(所以你得到的奇怪的数字其实是首元素的地址)
3. 数组首元素的地址值与数组的地址值相同------>(这就是为什么你得到的都是一样的奇怪的数字,这也说明了数组占内存的情况)


重要!!!欢迎对撸代码有兴趣的同学一起交流,大学生也可!!!带你一起写项目致富!QQ:1324252797

创作不易,欢迎点赞支持,关于数组日后继续更新

在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一坨牛马

你的鼓励是支持我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值