c语言数组篇-三.一维数组在内存中的存储

一维数组在内存中的存储是连续存放的。

计算机处理数据时,都要经过内存进行处理,而内存会被划分成一个个单元,每个内存单元都会编号,而这些编号也可以把他们看作为地址

我们可以用将数组中的地址都打印出来

#include<stdio.h>
int main(){
	int arr[5]={0};
	int a=0;//依旧可以用下标的方法打印数组的地址,只是打印的不是元素而是地址
	for(a=0;a<5;a++)
{printf("%p",&arr[a]);}//将数组中所有地址打印出来 “%p”是用来打印地址的“&”是取地址符号


return 0;


}

从结果中我们会发现

它们之间都是相差4,可以说明数组的元素在内存中是连续存放的

而连续的内存为指针(通过指针来访问数组元素)和内存处理(整块内存的复制和写入等)提供了便利,这使得数组可以作为缓存(临时存储数据的一块内存)使用。

如果我们将打印的函数换成printf("arr[%d]=%p",a,&arr[a])我们将发现

#include<stdio.h>
int main(){
	int arr[5]={0};
	int a=0;
	for(a=0;a<5;a++)
		{printf("arr[%d]=%p\n",a,&arr[a]);}//都是一样的,只是为了好看将arr[a]大印出来
return 0;

结果:

我们会发现随着下标的增加,地址逐渐变大。 

注意(每次打印的地址是不一样的!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值