数组越界的后果

本文探讨了C语言中数组越界的问题,指出数组越界可能导致正常运行、段错误或脏数据等后果。通过多个编程练习,如数组排序、查找第二大值、二维数组操作和变长数组应用,深入讲解了数组的使用和潜在风险。同时预告了后续将涉及的内容,包括进制转换、函数、类型修饰符和内存管理等。
摘要由CSDN通过智能技术生成

数组:

什么是数组:变量的组合,是一种批量定义变量的方式。
定义:类型 数组名[数量];
    int arr[5];
使用:数组名[下标];
    下标:从零开始,范围:0~数量-1。
遍历:与for循环配合,使用循环变量i当作数组的下标。
初始化:类型 数组名[数量] = {1,2,3,4,5,...};
    1、数组与普通变量一样默认值是随机的,为了安全要对进行初始化。
    2、这种初始化语法只能在定义数组时使用,而且必须使用常量初始化。
    3、初始化数据过多,编译器会丢弃并产生警告。
    4、初始化数据不够,编译器则会补0。
    5、初始化数组时长度可以省略,编译器会自动统计数据的个数然后告诉数组。
        sizeof(arr)/sizeof(arr[0]) = 数组的长度

练习1:定义一个长度为10的数组并初始化,计算出最大值,最小值以及平均值。

#include <stdio.h>

int main(int argc,const char* argv[])
{
   
	int arr[10] = {
   1,9,0,7,6,5,3,4,8,2};
	int max = arr[0] , min = arr[0];
	float sum = arr[0];

	for(int i=1; i<10; i++)
	{
   
		if(arr[i] > max)
		{
   
			max = arr[i];
		}
		if(arr[i] < min)
		{
   
			min = arr[i];
		}
		sum += arr[i];
	}
	printf("%d %d %g\n",min,max,sum/10);

}


练习2:定义一个长度为10的数组并初始化,进行升序排序。
for(int i=0; i<x-1; i++)
{
for(int j=i+1; j<x; j++)
{
if(i < j)
{
swap i j;
}
}
}

#include <stdio.h>

int main(int argc,const char* argv[])
{
   
	int arr[10] = {
   1,9,0,7,6,5,3,4,8,2};
	for(int i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值