C语言数组相关知识

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

数组是一组相同类型元素的集合

语法结构

元素类型 数组名 [数组大小必须为常量]

变长数组中可为变量,但是变长数组不能被初始化。

创建的同时给数组一些值叫做初始化,不完全初始化剩余的元素默认为0,如果创建时没有指定数组元素个数。编译会根据初始化的内容来确定数组的元素个数。

2,一维数组的使用

[]下标引用操作符,默认用来访问数组。
数组默认有下标,下标从0开始。

3,一位数组在内存中的存储

一维数组在内存中是连续存放的
随着数组下标的增长,地址是由低到高变化的

4,二维数组的创建和初始化

(1)eg:

创建int arr[3][4]={}三行四列其余都为0。
可以只存前两列int arr[3][4]={{1,2},{3,4},{5,6}}其余都为0。

二维数组的行是可以省略的,但是列不可以省略,数组创建时先放行后放列

(2)二维数组的使用

行和列都是从0开始,确定下标就能找到想要的元素。

(3)二位数组在内存中的存储

二维数组在内存中也是连续存放的,可以把二维数组看成一维数组,可以通过指针加减找到所有元素。 也可以把二维数组的每一行都想象成一维数组,二维数组也是一维数组的数组

5,数组越界

数组的下标规定从0开始,如果有n个元素,最后一个元素的下标就是n-1。
所以如果数组的下标小于0或者大于n-1,数组就越界访问,超出了数组合法空间的访问。

6,数组作为函数参数

数组作为函数参数进行传递

eg,1

冒泡排序,一次搞定一个数字,让该数字出现在最后的位置上
n个数字需要排n-1次

用函数实现冒泡排序
#include <stdio.h>
void Sort(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i <= sz - 1; i++)
	{
		int j = 0;
		for (j = 0; j <= sz - 1 - i; j++)
		{
			if (arr[j] > arr[j+1])
			{
				int tmp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = tmp;
			}
		}
	} 
}
int main()
{
	int arr[] = { 2,4,3,1,7,5,6,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	Sort(arr, sz);
	return 0;
}

6,数组名是什么

数组名是数组首元素的地址,但是有两个例外

1,sizeof(数组名),这里的数组名是表示整个数组,计算的是整个数组的大小,单位是字节
2,&数组名,这里的数组名表示的是整个数组,&数组名取出的是数组的地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值