C语言学习笔记 - 数组

这篇笔记详细介绍了C语言中的数组,包括一维数组、二维数组的定义、初始化、赋值及常见操作。强调了数组作为存储大量同类型数据的有效手段,并通过实例解析了数组的错误写法和正确使用方式。同时,提到了多维数组的概念,以及如何输出二维数组的内容。
摘要由CSDN通过智能技术生成

C语言学习笔记 - 数组

本笔记为看B站郝斌老师C语言教程所作笔记
因为之前已经看过一部分,笔记写在了本子上,故本笔记前面不做重复记录

1.数组

为什么要用数组:
1、为了解决大量同类型数据的存储和使用的问题
2、为了模拟现实世界

int a[5] = {1, 2, 3, 4, 5};			
//a数组名字;5数组个数,且这五个元素分别用a[0]、a[1]、a[2]、a[3]、a[4]表示。
//a[0] = 1、a[1] = 2、a[2] = 3、a[3] = 4、a[4] = 5

2.数组的分类

1)一维数组 int a[5]

要求:

  • 为n个变量连续分配空间
  • 所有的数据类型必须相同
  • 所有变量所占字节大小必须相等
    例如:int a[5]

有关一维数组的操作:
初始化:
完全初始化:
int a[5] = {1, 2, 3, 4, 5};
//a[0] = 1、a[1] = 2、a[2] = 3、a[3] = 4、a[4] = 5;
不完全初始化:未初始化的元素自动为零
int a[5] = {1, 2, 3};
//a[0] = 1、a[1] = 2、a[2] = 3、a[3] = 0、a[4] = 0;
不初始化:所有元素是垃圾值
int a[5] ;
//a[0] = 垃圾值、a[1] = 垃圾值、a[2] = 垃圾值、a[3] = 垃圾值、a[4] = 垃圾值;
清零:所有元素赋值为零
int a[5] = {0};

数组错误写法
int a[5];
a[5] = {1, 2, 3, 4, 5}; //这里a[5]只得是数组内的第五个数字,但实际没有a[5],最大只有a[4]
//错误,只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的

int a[5] = {1, 2, 3, 4, 5};
a[5] = 100;
//错误,没有a[5],最大只有a[4]这个元素

赋值:
int a[5] = {1, 2, 3, 4, 5};
int b[5] ;
如果把a[5]中的数据赋值给b[5]
错误写法:b = a; //一维数组名不代表数组的所有元素,代表数组读一个元素的地址。
正确写法:for(i=0; i<5; ++i) {b[i] = a[i];}

排序:
求最大/最小值:
倒置:
查找:
插入:
删除:
以上算法自己写或询问度娘

2)二维数组 int a[3][4]

概览:

int a[3][4]
	总共是12个元素,可以当作3行4列看待
	这12个元素名字依次是:
	int a[0][0] ; int a[0][1] ; int a[0][2] ; int a[0][3];
	int a[1][0] ; int a[1][1] ; int a[1][2] ; int a[1][3];
	int a[2][0] ; int a[2][1] ; int a[2][2] ; int a[2][3];
	int a[i][j] :表示第i+1行,第j+1列
	int a[m][n] :该二维数组右下角位置元素只能是a[m-1][n-1]

初始化:

int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
int a[3][4] = {
					{1, 2, 3, 4},
					{5, 6, 7, 8},
					{9, 10, 11, 12}
					};		//注意格式

输出二维数组里的内容

int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
int i,j;
for(i=0; i<3;++i)
{
	for(j=0; j<4; j++)
	{
		printf(" %-5d",a[i][j]);		//输出,-表示左对齐,5表示每个数据占5个光标的位置。
	}
	printf("\n");
}

二维数组的其他操作
对二维数组进行排序;
判断每一行的最大值;
判断矩阵是否对称;
矩阵的相乘;
以上算法自己写或询问度娘

3)多维数组
	不存在多维数组
	因为内存是线性唯一的
	n 维数组可以当作每个元素是n-1维数组的一维数组
	比如:
		int a[3][4];
	该数组是含有3元素的一维数组,且每个元素都可以再分成4个小元素
		int a[3][4][5];
	该数组是含有3元素的一维数组,且每个元素都可以分成4行5列的二维数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值