数组的简单介绍

本文详细介绍了数组的概念,包括数组的定义、初始化和元素引用。内容涵盖了一维数组的声明、初始化及遍历,强调了数组元素的下标从0开始。同时,还探讨了二维数组的语法、初始化方式以及注意事项,例如行列起始从0开始,元素可以间断赋值。通过示例代码展示了如何操作数组和二维数组,包括初始化、输入输出和元素访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组的概念

  • 数组是一种构造数据类型,用户可以根据自己的需求灵活分配占用空间大小和格式
  • 数组是同种类型的数据连续存储(地址是连续的)

数组的定义

语法

  • 数组名 [ 数组元素个数 ]
  • 数组名 [ 数组元素个数 ]={ 元素取值列表 }
    注意事项:
    1)数据类型可以是任意类型(基本类型和构造类型)
    2)数组名要简单直观,遵循之前讲的命名规则
    3)数组名就是数组的首地址
    4)数组定义时候数组元素个数必须是明确的常量
    5)采用初始化列表对数组元素赋初值,元素个数固定情况下[]下标(元素个数)可以省略不写
    6)局部数组(局部变量) 如果没有初始化,元素初值未知
    7)数组一旦初始化,就是整个空间的初始化
    8)单个数组元素可以看作是数组类型的一个变量和整体数组其他元素关系不大
    9)元素下标从 0 开始

数组的初始化和元素引用

#include <stdio.h>
int main(void)
{
	// 数组类型 数组名[元素个数];
	int Num1[12]; // 定义数组
	// [ 数组元素个数 ]={ 元素取值列表 }
	int Num2[12]={1,2,3,4,5,6,7,8,9,0,1,2};
}
#include <stdio.h>
int main(void)
{
	// 元素个数固定的情况下,元素定义的个数下标可以
	int Num[]={1,2,3,4,5,6,7,8,9,0,1,2};
	int i;
	for(i=0;i<12;i++)
	{
		printf("Num[%d]=%d\n",i,Num[i]);
	}	
}
#include <stdio.h>
int main(void)
{
	int Num[]={1,2,3,4};		// 下标省略,编译器会换算元素个数自动填充
	int i; 							// 数组 4 个元素
	for(i=0;i<12;i++)			// 超出数组的地址空间,不属于数组,数值未知,实际一定要避免这种空间溢出的情况
	{
		printf("Num[%d]=%d\n",i,Num[i]);
	}
#include <stdio.h>
int main(void)
{
	int Num[12]={0}; 				// 局部数组如果定义时候没有初始化使用
	int i; 								// 习惯上写初始化列表{0},给数组初始化为 0
	for(i=0;i<12;i++)
	{
		printf("Num[%d]=%d\n",i,Num[i]);
	}
}

#include <stdio.h>
// 利用 scanf 标准输入函数对数组元素初始化
int main(void)
{
	int Num[12];
	int i;
	for(i=0;i<12;i++)
		scanf("%d",&Num[i]); 	// 每次输入存放到单个元素的地址当中
											// 单个元素就是数组类型的一个普通变量 取地址
											// scanf 以空格作为输入分割
	for(i=0;i<12;i++)
		scanf("%d",&Num[i]); 	// 每次输入存放到单个元素的地址当中
											// 单个元素就是数组类型的一个普通变量 取地址
											// scanf 以空格作为输入分割
	for(i=0;i<12;i++)
		printf("Num[%d]=%d\n",i,Num[i]);
}

二维数组

语法:

  • 数组类型 数组名[行][列];
  • 数组类型 数组名[行][列]={{第 0 行元素初值列表},{第 1 行元素初值列表},…………};

注意事项:
1)数组元素个数固定,数组定义行的下标可以省略
2)数组初始化列表可以不区分行进行依次排列初始化
3)元素可以间断赋值
4)行列起始都是从 0 开始
5)注意字符串二维数组

#include <stdio.h>
int main(void)
{
	// 二维数组 0 行 1 行 2 行
	int Num[3][4]={{1,2,3,4},{5,6,7,8},{9,0,1,2}};
	printf("%d\n",Num[1][2]); // 7
}
#include <stdio.h>
int main(void)
{
	// 二维数组元素个数固定只允许省略行下标 需要固定格式
	int Num[][4]={{1,2,3,4},{5,6,7,8},{9,0,1,2}};
	int h,v;
	for(h=0;h<3;h++)
	{
		for(v=0;v<4;v++)
			printf("%-3d",Num[h][v]);
		printf("\n");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值