一维数组的使用

数组

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

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

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;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值