数组相关知识点 2021-10-22

数组相关知识点 2021-10-22,第1张

数组相关知识点 2021-10-22

c语言

1:数组定义
(1).数组类型 + 数组名 + [长度];

int arr[10]; //定义数组的类型为整型,数组名为arr,长度为10。

(2).数组定义时不给长度,编译器会通过赋的值推算长度是多少。

(3).数组名相关问题:
①数组名还可以表示数组首元素的地址;

int main() 
{
	int arr[9] = { 1,2,3,4,5,6,7,8,9 };
	printf("%d %dn", &arr, &arr[0]);
}

运行结果:

由运行结果可知 数组名可以表示数组首元素的地址

②数组名只有两种情况下表示整个数组:
在定义数组的同一个函数内,sizeof(arr),这里的arr代表整个数组
在定义数组的同一个函数内,&arr+1,这里的arr代表整个数组

2:数组的初始化
(1).寻常初始化

int brr[5]={1,2,3,4,5};//数组brr中存储1,2,3,4,5。

(2).数组只赋值一部分,剩余部分则全为0

#include
int main()
{
	int crr[5] = { 1,2,3 };
	for (int i = 0; i < 5; i++)
	{
		printf("%dt", crr[i]); // t为中间间隔八个字节
	}
}

运行结果为:

(3).数组只定义,不初始化其中的值为全部随机值(可能会出现如下的结果,这个结果就是随机值)

(4).数组赋0值的三种方法
①大括号里不写任何东西
②括号内只写一个0
③括号内将所有的值均写出来

#include
int main()
{
	int drr[5] = {};
	int err[5] = {0};
	int frr[5] = {0,0,0,0,0};
	for (int i = 0; i < 5; i++)
	{
		printf("%dn", drr[i]);
	}
	for (int j = 0; j < 5; j++)
	{
		printf("%dn", drr[j]);
	}
	for (int k = 0; k < 5; k++)
	{
		printf("%dn", drr[k]);
	}
}

3:数组的访问
(1).通过下标访问

(2).数组中括号中间的值什么时候代表长度?
当数组定义的时候,中括号中间的值代表着长度,并且必须是常量。

(3).数组中括号中间的值什么时候代表着下标?
当数组使用的时候,中括号中间的值代表着下标,可以是常量,也可以是变量。

4:数组长度的求法
公式: sizeof(arr)/sizeof(arr[0])
数组整个的字节/第一个格子的字节 == 有多少个格子
注意:求数组长度公式只能用在,定义这个数组的同一个函数内部。

5: 数组越界问题
访问到不属于自己的内存,会发生数组越界,不安全。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4751587.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-08
下一篇2022-11-08

发表评论

登录后才能评论

评论列表(0条)

    保存