新手入门C语言之数组(简单易懂)

本文介绍了数组在C语言中的基本概念,包括数组的定义、类型、初始化方法、下标使用、一维数组的内存布局,以及如何计算数组元素个数和C99中的变长数组。
摘要由CSDN通过智能技术生成

一.含义:

能存放一组数叫做数组,数组是相同类型元素的集合,请注意,数组中的元素是一个或多个,数组中的元素个数不能为0,且所有元素的类型相同

二.数组的形式(创建)

type arr_name[]                               

存放类型    数组名称    数组大小

例如:int date[10]    char ch[5]        请注意,int和char代表的是存放内容的类型,而非数组的类型

而对于前者,我们称该数组是int [10] ,后者的数组名称是char [5]

三.数组的初始化

对于如下代码

	int	arr[5] = {1,2,3,4,5};	//完全初始化
	int arr2[100] = { 1,2,3,4,5 };//不完全初始化,未初始化0
	return 0;

arr数组总共设定了大小为5,我们将每个位置都进行了赋值,我们称为完全初始化,而arr2数组大小是100,我们只给前5个赋值,因此成为不完全初始化,而未初始化的部分值都是0

四.数组的下标

数组实际上是从0开始的,例如对于一个arr[10]数组,我们进行遍历输出所有的数字

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

我们发现,我们在进行for循环的时候,i的取值是0-9,这是因为数组的下标从零开始,我们所定义的arr[10]中,arr[0] = 1,[]是下标引用操作符

五.一维数组的存储

一维数组在内存中是由小到大连续存放的,我们可以使用如下的代码进行验证:

int main() {
	int arr[10] = { 0 };
	int i = 0;
	for (i = 0; i < 10; i++) {
		printf("arr[%d] = %p\n",i, &arr[i]);
	}
	return 0;
}

其中%p是十六进制,前面的0不会省略,我们发现,两者的差值4正好是int类型的,而int类型占据4个字节

六.计算数组中元素的个数

我们可以使用sizeof计算出整个数组的长度,计算出数组中单个值的长度,进行相除即可

有如下的代码:

int main() {
	int arr[10] = { 1,2,3,4,5 };
	printf("%zd\n", sizeof(arr) / sizeof(arr[0]));		//sizeof(arr)计算数组大小,多少字节,除一下即可
	return 0;
}

七.C99变长数组

使用变量来指定数组的大小,例如:

int main() {

	int n = 1;
	scanf("%d", &n);
	int arr[n];
	return 0;
}

请注意,在确定好数组后,不能再改变n来改变数组的大小,同时,变长数组不能进行初始化

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值