C语言 有关数组的知识

数组:

什么是数组:数组就相同类型变量的组合,它是一种指定义变量的方法。
一维数组:把变量排成一排。
	定义:类型 数组名[数量]:
		int arr[5]; // 数字表示的是变量的数量
		int num1,num2,num3,num4,num5;
		注意:数组定义后,默认值不确定。
	使用:数组名+编号(下标)
		arr[0],arr[1],arr[2],arr[3],arr[4] // 数字表示编号
		注意:数组的编号从零开始,0~数量-1
	遍历:使用for循环配合,使用循环变量当做数组的下标。
	初始化:类型 数组名[数量] = {v1,v2,v3,v4};
		1、如果初始化数据超过数组的长度,多余的值会被忽略,而且会有警告产生。
		2、如果初始化数据不够,则补零。
		3、空的大括号表示数组全部初始化零。
		4、当对数组进行初始化,数组的长度可以忽略,编译器会计算数据的个数和,
		然后再告诉数组。
		sizeof(arr)/sizeof(arr[0]);

二维数组:把变量排成一个方阵。

	定义:类型 数组名[行数][列数];
		int arr[3][4];
		[][][][]
		[][][][]
		[][][][]
	使用:数组名[行编号][列编号];
		[0][0],[0][1],[0][2],[0][3]
		[1][0],[1][1],[1][2],[1][3]
		[2][0],[2][1],[2][2],[2][3]
	遍历:使用双层for循环配合,外层循环负责遍历行,内层循环负责遍历列。
	初始化:类型 数组名[行数][列数] = {{v1,v2,v3,v4},{v1,v2,v3,v4},{v1,v2,v3,v4}};

变长数组:

	定长数组:数组长度在编译时就已经确定了。
	
	变长数组:数组长度在编译时不确定,程序运行期间可根据实际情况变长,
	但执行数组定义语句时,就确定下来不能再变。
	
	优点:可以根据实际情况确定数组的长度,节约内存。
	
	缺点:不能初始化。

数组的越界:

编译器不会检查数组的下标(不能检查,也不愿意检查),
因此使用数组越界可以越界(不会有语法错误)。
数组越界的后果:
	1、一切正常。
	2、脏数组。

例子:

#include <stdio.h>

int main()
{
int arr[10],i;
printf("开始初始化数组...\n");
for(i=0; i<=10; i++)
{
	arr[i] = 0;
	printf("------------%d\n",i);
}
printf("初始化数组结束!\n");
}

//数组长度为10 超过十个以后将0赋给i
//无限循环

3、段错误(核心已转储)

	非法访问内存时被操作知道了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值