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

c语言数组详解(初学者这一篇就够了,看了不会打我)「建议收藏」C语言数组详解1.数组:储存数据类型相同的一系列元素例如inta[100];在这里a数组储存100个int型元素,在这里[]这个符号就是告诉计算机a是一个数组。值得一提的是数组的下标访问数组的,数组中的a[0]一般表示你初始化的第一个值。2.初始化数组前面介绍过了,数组可以储存数据类型相同的一系列元素,所以初始化数组必不可少的一步就是告诉计算机这个数组储存的数据类型!…

大家好,又见面了,我是你们的朋友全栈君。

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

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

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157312.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 打开GTA 5竟要跑19.8亿次if语句!黑客嘲讽R星代码烂,修改后直接省70%加载时间

    打开GTA 5竟要跑19.8亿次if语句!黑客嘲讽R星代码烂,修改后直接省70%加载时间本文转载自量子位一支烟的功夫,GTA5联机版终于打开了。「7年了!GTA5联机版加载还是这么慢??」△PleasewaitforevertoplayReddit、Steam、HackerNews上,无数玩家吐槽抱怨……进游戏少则等5、6分钟,多则20分钟。终于,一个黑客大哥实在忍不了,用逆编译器逐条查看运行情况,终于找到原因。原来,R星(游戏开发商RockStar)写的代码太低效,加载时,一个if语句竟然循环了19.8亿次….幕后黑手:谁占用大量时间?加

    2022年6月12日
  • Java集合之ArrayList扩容机制

    Java集合之ArrayList扩容机制ArrayList的构造函数//默认初始容量大小(默认能添加10条数据)privatestaticfinalintDEFAULT_CAPACITY=10;//默认实例化一个空数组privatestaticfinalObject[]DEFAULTCAPACITY_EMPTY_ELEMENTDATA={};//默认构造函数,使用初始容量为10构造一个空列表(无参数构造…

    2022年6月7日
  • 使用griddata进行均匀网格和离散点之间的相互插值

    使用griddata进行均匀网格和离散点之间的相互插值文章目录1griddata函数介绍2离散点插值到均匀网格3均匀网格插值到离散点4获取最近邻的Index插值操作非常常见,数学思想也很好理解。常见的一维插值很容易实现,相对来说,要实现较快的二维插值,比较难以实现。这里就建议直接使用scipy的griddata函数。1griddata函数介绍官网介绍2离散点插值到均匀网格definterp2d_station_to_gri…

    2022年5月20日
  • mysql 根据时间范围查询

    mysql 根据时间范围查询时间格式为第一种写法:select*fromtestwherecreate_timebetween’2019-03-0513:04:07’and’2019-03-0813:04:07′;第二种写法:select*fromtestwherecreate_time&gt;=’2019-03-0513:04:07’anddate&lt…

    2022年6月25日
  • 如何将Eclipse设置为中文版[通俗易懂]

    如何将Eclipse设置为中文版[通俗易懂]如何将Eclipse设置为中文版我们知道Eclipse一个开放源代码的、基于Java的可扩展开发平台,不管学习还是工作都是一款不错的集成开发环境(IDE),但是对于一些初学者看到Eclipse上

    2022年5月4日
  • 轻量级MVVM框架Stylet介绍:(3)关于Bootstrapper「建议收藏」

    轻量级MVVM框架Stylet介绍:(3)关于Bootstrapper「建议收藏」Bootstrapper负责引导应用程序,用于配置IoC容器,创建根ViewModel的新实例,并使用显示WindowManager出来。它还提供了各种其他功能,如下所述。引导程序有两种风格

    2022年7月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号