C语言——数组

一、认识数组

数组是由数据类型相同的一系列元素组成,在使用数组时,需要明确告知编译器数组的类型和数组的个数。

type name[const]
type表示类型
name表示名字
const表示常量或者常量表达式

int main(void)
{
	int arr[10];
	float num[36];
	char code[100];
}

二、一维数组的定义和引用

1.一维数组的创建

格式:
类型 数组名[常量表达式]={ };

数组的取名规则和变量相同,遵守标识符命名规则。

	int day[30];//定义30天

数组的类型就是数组中各个元素的类型,一个数组的所以元素类型相同。

	int i[10];//10个int类型的i
	char j[5];//5个char类型的j

所以的数组名字都相同,区别在于下标。下标从0开始,按照顺序依次排放。

	int num[10];
	//num[0],num[1],num[2],num[3],num[4]
	//num[5],num[6],num[7],num[8],num[9]

num[0]表示数组中第一个元素。

2.一维数组的初始化

数组的初始化,即在定义数组时给数组添加合理的初始值。

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

如果在定义一个数组时,不确定元素的个数,就必须初始化,编译器会根据你的初始化的值来确定元素个数,并分配内存。

	int num[]={0,1,2,3,4};//系统默认5个元素

3.一维数组的引用

在定义完一维数组后,不能引用整个数组,只能逐个引用。


//打印数组	
	int num[] = {1,2,3,4,5};
	//确定数组的长度
	int sz = sizeof(num)/sizeof(num[1]);
	//循环
	int i = 0;
	for(i = 0; i<sz; i++)
	{
	//打印数组里的元素
		printf("%d ",num[i]);
	}
	return 0;

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

一维数组在内存中时连续的,由高到低的。并且数组中的每一个连续元素的地址相差一个类型的存储内存。

	//打印数组的地址
	int num[] = {1,2,3,4,5};
	//确定数组的长度
	int sz = sizeof(num)/sizeof(num[1]);
	//循环
	int i = 0;
	for(i = 0; i<sz; i++)
	{
	//打印数组里的元素
		printf("&num[i]=%p\n", i, &num[i]);
	}
	return 0;

三、二维数组的定义和引用

1.二维数组的定义

格式
类型 数组名[常量表达式1][常量表达式2]={};

	int num[2][3];
	//表示2行3列

数组的元素都是内置类型,如果我们把一位数组作为数组的元素就叫二维数组,将二维数组作为数组的元素就叫三位数组,二维数组以上的数组统称为多维数组。

2.二维数组的初始化

二维数组在初始化时有三种情况。
第一种:不完全初始化

	int num[2][3]={0,1};
	//其他的值默认为0

第二种:完全初始化

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

第三种:按照行和列初始化

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

在省略二维数组的常量或者常量表达式的时候,只能省略行的,不能省略列的。

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

3.二维数组的引用

格式:
数组名[行下标][列下标]

二维数组的下标同一维数组的下标相同,可以时常量或者常量表达式。并且行下标和列下标都是从0开始的

例如:num[2][3]的每个元素
num[0][0] , num[0][1] , num[0][2]
num[1][0] , num[1][1] , num[1][2]

二维数组的打印

#include<stdio.h>
int main(void)
{	
	int num[3[3];
	//初始化赋值
	int i = 0;
	int j = 0;
	for(i = 0; i<3; i++)
	{
		for(j = 0; j<3; j++)
		{
			num[i][j]=1+i+j;
		}
	}
	for(i = 0; i<3; i++)
	{
		for(j = 0; j<3; j++)
		{
			printf("%d",num[i][j]);
		}
	}
	return 0;
}

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

二维数组在内存中的存储也是连续的。

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

四、数组边界

在使用数组时,要小心数组下标超出边界,必须确保下标是有效的值。

	int num[20];
	//我们只能使用下标为0-19的数组
"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读写操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值