栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言数组

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言数组

每天进步一点点,坚持带来大改变!

你好,屏幕前的陌生朋友,学习的心让我们在这里相遇,让我们互相共勉,一起加油!!!

 

目录

1.数组

2.一维数组的创建和初始化

3.一维数组的使用

4.一维数组在内存中的存储

5.二维数组的创建初始化和使用

6.二维数组在内存中的存储

7.注:

8.一维数组和二维数组的数组名

1.一维数组数组名:

2.二维数组的数组名

3.数组名传参

9.总结


1.数组

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

int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 

int arr[10]:表示一个一维整形数组,数组有是个元素,每个元素是整形;

2.一维数组的创建和初始化

创建:例

整形数组:int arr[10];

字符数组:char str[10];

数组的创建:数据类型+ 变量名 [X];

在创建的时候:X必须是常量,不能是变量(在C99中规定可以是变量);

X的两种表示方法:第一在创建的时候指定数组的大小,第二可以不用指定数组的大小,编译器会根据数组初始化的内容来调节数组的大小。

初始化:

通过监视我们可以观察到arr1数组不初始化的时候,数组中默认放的是随机值,arr2数组我们用0来初始化之后,数组中每个元素都是0。

3.一维数组的使用

数组的使用我们是通过一个操作符"[ ]",下标引用操作符,来访问数组的,数组的每个元素都有对应的下标,数组的下标默认是从0开始的:

#include

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

解释:通过循环的方式来遍历到数组的每个元素

4.一维数组在内存中的存储

从图中可以看到数组在内存中是连续存放的,因为整形在数组中占4个字节,通过地址可以观察到每次增加4。

5.二维数组的创建初始化和使用

创建:例
 

int arr[10][10];

和一维数组一样,二维数组创建也是:数据类型+变量名+[ X] [Y];

X:代表行,可以省略。

Y:代表列,不能省略。

初始化和使用:

解释:通过图上可以观察到该数组是一个十行十列的数组,并且用0来初始化,在使用的时候仍然通过“[ ]”下标引用操作符来访问数组中的每个元素。

6.二维数组在内存中的存储

 

 解释:通过图可以观察到,二维数组在内存中的存储其实也是连续存放的。

7.注:

使用数组时的易错点:

数组越界的问题:

解释:创建的数组包含5个元素,但访问的时候访问到第6个元素了,打印出随机值说明访问的时候已经越界了。

解释:和上面相同,数组最多存放5个元素,当存放第6个元素的时候,数组已经越界了。

数组个数的计算:

 

解释:sizeof计算的是数组的大小,单位是字节;sizeof(arr)计算的是整个数组的大小,sizeof(arr[0])计算的一个元素的大小。

8.一维数组和二维数组的数组名

当我们设计涉及数组的传参,计算数组的大小的时候会经常使用到数组名,但是数组名在不同的情况下所代表的含义有所不同:

1.一维数组数组名:

 解释:通过图示可以观察到&arr[0]和arr,的地址相同说明数组名表示首元素的地址。

既然数组名表示首元素的地址,那&数组名又表示什么呢?

解释:看到上图你可能就会认为&数组名也表示首元素的地址,其实不然。

我们继续来看:

解释:00CFF96C—>00CFF970:+1跳过4个字节,说明跳过一个元素;

           00CFF96C—>00CFF980:+1跳过20个字节,说明+1跳过整个数组。

总结:数组名表示首元素的地址,&数组名取出的是整个数组的地址。

2.二维数组的数组名

解释: 00C5F824—>00C5F830:+1跳过12个字节,说明跳过3个元素,也就是二维数组的一行,

说明在二维数组中数组名表示首元素的地址,而首元素又是数组的第一行。

          00C5F824—>00C5F848:+1跳过36个字节,也就是跳过9个元素,说明在二维数组中&数组名取出的也是整个数组的地址。

3.数组名传参

函数传参:数组名是首元素的地址,即使用int arr[ ]来接受,本质上也是指针int* parr。

9.总结

 数组名表示数组首元素的地址。

 sizeof(数组名):计算的是整个数组的大小。

 &数组名:表示整个数组的地址。

                                                                                   遇见未来最好的方式是创造未来,加油!!!

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号