数组(C语言)

本文详细介绍了C语言中的一维数组和二维数组的创建、初始化和使用,包括内存中的存储方式。强调了数组越界的问题,并探讨了数组作为函数参数的处理方式。
摘要由CSDN通过智能技术生成


在这里插入图片描述

1 一维数组的创建和初始化

1.1 数组的创建

使用type_t arr_name[const_n]创建数组
type_t类型,const_n常量表达式

	int arr[10];
	char arr2[10];
	double arr3[5];
	double arr4[2+3];
  • C99支持变长数组,OJ也支持,但VS19,22不支持
    在这里插入图片描述

1.2 数组的初始化

创建数组同时初始化数组

  • 指定大小的不完全初始化
	int arr[10] = {
   1};//第一个元素初始化为1,其余的元素默认初始化为0
	char ch1[10] = {
    'a','b','c'};//a b c 0 0 0 0 0 0 0
	char ch2[10] = "abc";         //a b c 0 0 0 0 0 0 0

注意"abc"指定了a,b,c,\0四个字符,{ 'a','b','c'}只有三个.其余全是\0.因为[10].

	char ch3[] = "abc";
	char ch4[] = {
    'a', 'b', 'c' };
	char ch5[10] = "abc";

注意ch3大小4,ch4大小3.
在这里插入图片描述
97是a,0就是\0. 注意'0'是字符零,ASCII码是48

  • 禁止数组越界
    Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted.
	//char arr[] = "";
	//scanf("%s", arr);

	//printf("%s\n", arr);

	int arr[] = {
    0 };//1
	int i = 0;
	for (i = 0; i < 10; i++)
	{
   
		arr[i] = i;
	}

1.3 数组的使用

通过下标引用[]访问数组元素

int main()
{
   
	int arr[20] = {
    1,2,3,4,5,6,7,8,9,10,11,12 };
	//0~9
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
   
		printf("%d ", arr[i]);//arr[i]表示数组的一个元素,而不是创建数组
	}

	return 0;
}

1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 0 0 0 0 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值