一维数组的使用

wuchangjian2021-10-30 09:01:39编程学习

数组

定义 :数组类型 数组类型 数组名[ 长度];

 数组可以只赋值一部分其他的会默认为零,如:

int arr[10] = {1,2,3,4,5}相当于 int arr[10] = {1,2,3,4,5,0,0,0,0,0}

 数组只定义,不初始化  其中的值全部为随机值 如: int arr[10] ;

 数组定义时不给长度,让编译器通过赋的值推算长度应该是多少 如:

int arr[] = {1,2,3,4,5}    相当于 int arr[5] = {1,2,3,4,5}

数组访问

通过下标访问 如:arr[3] = 100;

注:当数组定义的时候,中括号中间的值代表长度且必须为常量,如:int arr[10] 里面中括号里面代表长度  arr [10] 里面中括号里面值代表下标,下标可以为常量也可以是变量

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

数组名可以表示数组首元素地址,

数组名只有两个情况下可以表示整个数组:

1.在定义数组的同一个函数内,sizeof(arr),这里arr代表整个数组

2.在同一个数组同一个函数内,&arr+1  ,这里的arr代表整个数组

求数组长度

公式:sizeof(arr) / sizeof(arr[0])

注意:必须在同一函数内使用

数组名作为参数传递的时候,会发生退化,退化成指针(只传递一个信息:数组开始地址,长度信息没有传递出去)  所以数组作为函数参数传递的时候,数组名和长度信息缺一不可

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

实例应用:

如何颠倒数组的值,如: {1,2,3,4,5,6,7,8,9};颠倒为{9,8,7,6,5,4,3,2,1}.

void Show(int arr[], int length)  //打印数组元素
{
	for (int i = 0; i < length; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
}

//颠倒数组中的值    注意点:交换次数是总个数/2 
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
	int len = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0, j = len - 1; i < j; i++, j--)
	{
		int tmp = arr[i];
		arr[i] = arr[j];
		arr[j] = tmp;
	}

	Show(arr, len);
	return 0;
}

相关文章

如何让类不能被继承

方法一:借助 final 关键字,用该关键字修饰的类不能被继...

云计算提供商锁定的影响以及解决方案

问题 云计算提供厂商锁定是不能完全消除的,如果云计算提供商锁定将会产生很...

LeetCode刷题Python之299. 猜数字游戏

你在和朋友一起玩 猜数字(Bulls and Cows)游戏...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。