C语言---数组

【C语言】数组 数组 阅读详情

1.数组的概念

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

  • 数组中存放的是1个或者多个数据,但是数组元素个数不能为0
  • 数组中存放的多个数据,类型是相同的

数组分为一维数组和多维数组,多维数组一般比较常见的是二维数组

2.一维数组的创建和初始化

2.1数组创建

type  arr_name[常量值];

存放在数组中的值被称为数组的元素,数组在创建的时候可以指定数组的大小和数组的元素类型

  • type 指定的是数组中存放数据的类型,可以是:char ,short ,int ,float 等,也可以是自定义类型
  • arr_name 指的是数组名,这个名字根据实际情况,起的有意义就行
  • [ ] 中的常量值是用来指定数组的大小的
int math[20];
char ch[8];
double score[10];

2.2数组的初始化

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

//完全初始化
int srr[5] = {1,2,3,4,5};
//不完全初始化
int arr2[5] = {1};
//错误初始化----初始化的项多于数组元素个数
int arr3[3] = {1,2,3,4,5};

2.3数组的类型

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

int arr1[10];//数组类型 int [10]
char arr2[12];//数组类型 char [12]

3.一维数组的使用

3.1数组下标

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

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

在这里插入图片描述
在C语言中数组的访问提供了一个操作符[ ],这个操作符叫:下标引用操作符

3.2数组元素的打印

如果我们想要访问整个数组的内容,那怎么办呢?
只要我们产生数组所以元素的下标就可以了,那我们使用for 循环产生0~5的下标,接下来使用下标访问就可以了

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

3.3数组的输入

比如给定一个数组想要输入1~10

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

4.一维数组在内存中的存储

数组随着下标的增长,地址是由小到大变化的,并且每相邻两个元素之间相差4(int类型),所以说:数组在内存中是连续存放的

5.sizeof计算数组元素的个数

sizeof中C语言是一个关键字,是可以计算类型或者变量大小的,其实sizeof也可以计算数组的大小

#include <stdio.h>
int main()
{
	int arr[10] = {0};
	printf("%d\n",sizeof(arr));
	return 0;
}

这里输出的结果是40,计算的是数组所占内存空间的总大小,单位是字节
我们又知道数组中所有元素的类型都是相同的,那只要计算出一个元素所占字节的个数,数组的元素个数就能算出来

#include <stdio.h>
int main()
{
	int arr[10] = {0};
	printf("%d\n",sizeof(arr[0]));//计算一个元素的大小,单位是字节
	return 0;
}

接下来算数组元素的个数:

#include<stdio.h>
int main()
{
	int arr[10] = {0};
	int sz = sizeof(arr)/sizeof(arr[0]);
	printf("%d\n",sz);//  sz=10,表示数组有10个元素
	return 0;
}

6.二维数组的创建

6.1二维数组的概念

如果我们把一维数组作为数组的元素,这时候就是二维数组
在这里插入图片描述

6.2二维数组的创建

type arr_name[常量1][常量2];
例如:
int a[3][4];
double date[2][8];
  • 3表示数组有3行
  • 5表示每一行有5个元素
  • int表示数组的每一个元素是整型类型
  • a是数组名

date数组意思基本一致

7.二维数组的初始化

7.1不完全初始化

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

在这里插入图片描述

7.2完全初始化

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

在这里插入图片描述

7.3按照行初始化

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

在这里插入图片描述

7.4初始化时省略行,但不能省略列

int arr5[][5] = {1,2,3};
int arr6[][5] = {1,2,3,4,5,6,7};
int arr7[][5] = {{1,2},{3,4},{5,6}};

在这里插入图片描述

8.二维数组的输入与输出

#include <stdio.h>
int main()
{
	int arr[3][5] = {1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};
	int i=0,j=0;
	//输入
	for(i=0;i<3;i++)
	{
		for(j=0;j<5;j++)
		{
			scanf("%d",&arr[i][j]);
		}
	}
	//输出
	for(i=0;i<3;i++)
	{
		for(j=0;j<5;j++)
		{
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

9.二维数组在内存中的存储

在这里插入图片描述
在这里插入图片描述
从输出的结果来看,每一行内部的每一个元素是相邻的,地址之间相差4个字节,跨行位置处的两个元素之间也是相差4个字节,所有二维数组中的每一个元素都是连续存放的
在这里插入图片描述

10.C99中的变长数组

在C99标准之前,C语言在创建数组的时候,数组大小的指定只能使用常量,常量表达式,或者如果我们初始化数据,可以省略数组的大小

int arr1[10];
int arr2[3+5];
int arr3[] = {1,2,3};

C99中给一个变长数组的新特性,允许我们可以使用变量指定数组的大小

int n=a+b;
int arr[n];

数组arr就是变长数组,因为它的长度取决于变量n的值,编译器没法事先确定,只有运行时才能知道n是多少
变长数组不能初始化
在程序运行时,根据变量的大小来指定数组的元素个数,而不是说数组的大小是可变的。数组大小一旦确定就不能变化了

【某音电商】protobuf聊天协议逆向 某音电商私信、聊天消息protobuf协议逆向分析与解析 阅读详情

相关推荐

网络安全实战:从Wireshark到BurpSuite的抓包技巧解析

本文深入解析了Wireshark和BurpSuite在网络安全抓包中的实战技巧,从基础对比到高级过滤、核心模块应用及安全测试避坑指南。通过详细的操作步骤和案例分析,帮助读者掌握数据包抓取与分析的核心技能,提升网络安全防护能力。

weixin_29207533的博客 573

C语言——数组

1.定义 C语言中给了数组的定义:一组相同类型数据的集合。 例如:int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //定义一个整形数组,最多放10个元素 那么这些数有没有什么要求呢,是不是不管什么数组合在一起都是数组呢? 同一数组中存储的数必须满足以下两个条件: 这些数的类型必须相同。 这些数在内存中必须是连续存储的。 2.数组的命名方式 类型说明符 数组名[常量表达式]; 例如: int a[5]; 它表示定义了一个整型数组,数组...

LxinY213的博客 1万+

DATCOM GUI——DATCOM-Tools使用介绍

简介 本工具以1976年美国空军稳定性与操纵性计算程序(USAF STABILITY AND CONTROL DIGITAL DATCOM PROGRAM)为基础进行开发,目的是提供更为简洁方便的外形输入方式,并带有三维绘图与气动特性输出功能。 安装与环境配置 1、 代码以Holy Cows公司提供的DATCOM程序为基础,首先下载其安装包(window,Linux均有)。 2、 安装到你想要的位置,注意不要有中文路径 3、 测试DATCOM是否能够正常运行。复制examples文件夹中的Citation

qq_40800981的博客 1万+

c语言——数组

这个连续增长与数组的类型有关,当数组类型为int类型,每个数组中的元素在内存中都有一个地址,因为int类型是4个字节,所以随着下标增长,地址也很会变(以4个字节一次一次变)每一个元素都有一个下标,这都是从0开始数的,比如就像上面有10个元素,它们的下标不是1到10而是0到9,这是与我们习惯上不同的一个点需要牢记。一维数组中将其中数据看作元素,二维数组则是将一位数组看作元素,依次类推,多维数组则是将前一个数组看作元素的数组。type指定数组存放数据类型,这类型可以是我们常见的类型也可以是我们自定义的类型。

2403_87827685的博客 2263

【Unity】Pico VR 开发实战:从环境搭建到交互实现

本文是一份详细的Unity Pico VR开发实战指南,涵盖从环境搭建到核心交互实现的全流程。详细讲解了如何集成Pico Unity Integration SDK与XR Interaction Toolkit,配置开发环境,并重点解析了手柄输入处理、射线交互以及VR UI操作三大核心模块的代码实现与优化技巧,帮助开发者快速上手Pico VR应用开发。

rice5的博客 1175

阿里云Ubuntu部署Steam饥荒联机版服务器:从零到多人联机的完整指南

本文详细介绍了在阿里云Ubuntu系统上部署Steam饥荒联机版服务器的完整流程,包括环境准备、SteamCMD安装、服务端配置、Mod管理及后台运行技巧。通过2核4GB的ECS实例配置和端口设置,实现5人流畅联机体验,适合游戏爱好者快速搭建专属服务器。

weixin_29229261的博客 1024

C语言数组

一组相同类型的元素集合叫数组,分为一维数组和多维数组(二维数组,三维数组).在这里面 type 是数组中元素的类型. arr_name就是数组名, 那么[ ]中的常量呢,就是你数组的元素的数量.int a[3];这里就是一个数组,创建了数组元素为整形且元素个数为3的一个数组,

gh468600的博客 2165

ADS仿真设计平行定向耦合器学习笔记

ADS仿真设计平行定向耦合器

qq_36521926的博客 1万+

【C语言】数组的总结

整型数组、浮点型数组、字符型数组、指针数组、函数指针数组、结构体数组、柔性数组、变长数组

志之所趋,无远弗届,穷山距海,不能限也 2060

手把手教你理解特斯拉Model 3的域控制器架构:RBCM如何成为“多面手”?

本文深入解析特斯拉Model 3的域控制器架构,重点介绍右车身域控制器(RBCM)如何整合车身电子系统功能。RBCM作为多任务处理中枢,管理空调系统、尾部电气设备和超声波雷达等关键功能,展现了特斯拉在汽车电子架构上的创新设计。文章详细探讨了RBCM的硬件架构、功能版图及信号网络,揭示其如何通过高性能MCU和智能开关技术实现功能集中与效率提升。

weixin_30919429的博客 383

飞书+扣子+DeepSeek三件套:5分钟搞定公众号文章批量改写(附完整配置截图)

本文详细介绍了如何利用飞书、扣子和DeepSeek三款工具,无需编程即可搭建一个高效的公众号文章批量改写自动化工作流。通过飞书多维表格管理链接与成果,扣子平台串联整个流程,并调用DeepSeek智能体进行内容润色与改写,实现从内容抓取到智能处理的完整自动化,大幅提升新媒体运营效率。

python9snake的博客 208

c语言数组赋值给另一个数组_09c语言数组详解

数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。数值数组 数组说明的一般形式为:类型说明符 数组名 [常量表达式],...

weixin_42662293的博客 2万+

模型预测控制(MPC)解析(二):单输入单输出系统

在上一篇中,为了便于说明,预测控制系统采用单输入单输出系统为例进行设计。由于系统模型使用的是状态空间方程,于是可以很容易的将这种设计方法可以扩展到多输入、多输出系统。

行者无疆的博客 8223

c语言 数组存放规则,C语言数组详解

数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。数组类型说明 在C语言中使...

weixin_39869593的博客 9002

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C语言的数组

所谓数组,就是数⼀组相同类型元素的集合。也就是说,在这个集合中,存放的数据必须是相同类型的,而且存放数据的个数要≥1。数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。

2402_83854011的博客 1134

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

c语言数组的作用是什么,C语言数组是什么

C语言数组是什么C语言数组是什么呢?大家是否清楚呢?下面是小编分享的C语言数组的概念,欢迎大家参考!例子:输出一个 4×4 的整数矩阵,代码如下:#include #include int main(){ int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1...

weixin_27676369的博客 1303

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C 语言的数组

C 语言的数组

chengkai730的博客 2452

C语言中的数组

到目前为止,我们见过的变量都只能存储单个数据项,这样的变量称为标量 (scalar)。C 语言也支持聚合变量,这类变量可以存储多个数据项。C 语言提供两种类型的聚合变量:数组和结构体。本章主要介绍数组。数组是含有多个数据项的数据结构,并且这些数据项都具有相同的数据类型。这些数据项称为数组的元素,我们可以根据元素在数组中的位置来选取元素。最简单的数组就是一维数组。数组元素在内存中是依次排列的,如下图所示:声明一个数组,我们需要指定数组元素的类型和数量。如: 数组元素可以是任何类型,数组的长度则必须是常量表达

caijirui_rui的博客 1020

C语言—数组

有 ⼀个⽐较迷惑的点,变⻓数组的意思是数组的⼤⼩是可以使⽤变量来指定的,在程序运⾏的时候,根据变量的⼤⼩来指定数组的元素个数,⽽不是说数组的⼤⼩是可变的。可以看到,每一个元素之间都相差4,代表相差4个byte(字节)的内存空间,而一个整型数据(int)的内存空间也是4个byte,说明数组在内存中的存储是连续存放的;前⾯了解的数组被称为⼀维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元 素,这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称 为多维数组。

2502_91437895的博客 1099
上一篇: C语言---数据类型和变量(超详细)
下一篇: C语言实现扫雷游戏
Tangcan-
博客等级 码龄3年 664粉丝 91原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值