期末——有关数组的一些知识点

打印数组元素的地址

要想深入的了解一下数组,那么就需要了解一下数组在内存中的存储,所以要先获取数组的地址。计算机内存地址通常是以16进制数字表示的

#include<stdio.h>

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i < 10; i++)
	{
		printf("&arr[%d]=%p\n", i, &arr[i]);     //%p是专门用来打印地址的
	}
	return 0;
}

我们可以发现每一位元素地址之间刚好是相差了4个字节(在VS里int类型就是占4个字节的),所以可以得到结论:数组元素在内存里是连续存放的。

利用sizeof计算数组元素的个数

sizeof这个函数是用来计算数据类型或变量所占用的内存空间大小,单位是字节(byte)。

#include<stdio.h>

int main()
{
	int arr[10] = { 0 };
// sizeof(arr)表示整个数组占的总大小;sizeof(arr[0])表示一个数组元素占的字节大小
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d", sz);
	return 0;
}    //输出结果为10

所以以后写代码的时候数组的大小可以不用固定死啦!

C99变长数组

VS是不支持C99的变长数组的,所以在用C语言创建数组时,数组大小必须是常量或者常量表达式。这样就导致很多时候都不方便。但是在gcc编译器里支持C99。今天就展示一下这段代码。

#include<stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);

	int arr[n];
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (int j = 0; j < n; j++)
	{
		printf("%d", arr[j]);
	}

	return 0;
}

//这一段代码在vs上运行是会报错的!
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值