C语言---数组初始化、赋值、越界

 在练习题的时候,一个简单的程序多次运行崩溃,经检查总结以下问题:

1、数组初始化问题

在写程序时,由于习惯问题,在数组初始化时有时会不写元素个数,例如:

这样写虽然程序不会报错,但是在程序运行时是会出错的(程序可能会崩溃,并且找不到原因),这时就是数组越界。有相同情况的小伙伴可以查看一下是否是数组初始化的方式写错了。数组初始化需要随便给数组一个值向内存申请一块空间,正确的初始化数组的方式有以下两种:

如果想通过窗口 给数组灵活赋值,数组初始化需要写成第一种形式

2、给数组赋值问题(有两种方法)

对于初学者来说,习惯用给变量赋值的方式给数组赋值,如下:

法一:

这种赋值方法是对的,但是scanf写起来比较繁琐

可以使用循环方式,避免书写scanf时出错:

法二:(推荐)

3、这里附上自己写的小题目,包含上述的两个问题点,可以参考一下实际运用案例

int main() {
	//给数组赋值时必须给定准确的数组元素个数
	int arr[10] = { 0 };
	int max = 0;
	int i = 0;

	for ( i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}

	for ( i = 0; i < 10; i++)
	{
		if (arr[i] > max)
			max = arr[i];
	}
	printf("%d\n", max);
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值