数组基础知识1

1.数组的定义以及初始化
  • int arr[10];//定义一维数组:类型符 数组名[常量表达式:必须是常量,不能是变量,当然符号常量也是合法的。此时(定义时)10表示数组的长度。
  • arr[3]=100;//此时(使用时)3表示小标。注意:下标是从0开始的。arr[0]~arr[9].
  • 在定义数组时对全部数组元素赋予初值:
  • int arr[10]={1,2,3,4,5,6,7,8,9,20};即:arr[0]=1,arr[1]=2,arr[2]=3……arr[9]=10
  • 只给数组中的一部分元素赋值:
  • int arr[10]={1,2,3,4};//表示:只给前面四个元素赋初值,系统自动给后面六个赋初值为0.(聚合类型只初始化一部分,剩余部分为0.)
  • 随机值
  • int arr[10];
  • 使一个数组中全部元素值为0
  • int arr[10]={0,0,0,0,0,0,0,0,0,0}; 
  • int arr[10]={0};//未赋值的部分元素自动设为0
  • 赋值时可以不指定数组长度
  • int arr[4]={1,2,3,4};或者 int arr[]={1,2,3,4};

2.数组越界即非法访问内存(此程序在vc6.0中出现死循环)

inti;
int arr[10];
{
	for(i=0;i<=10;i++)
	{
		arr[i]=0;
		printf("%d\n",i);
	}
}
3.数组名arr在定义数组的同一个函数中的如下情况表示整个数组
A:sizeof(arr)表示整个数组占用的字节数。可以通过sizeof(arr)/sizeof(arr[0])求数组长度。
B:&arr+1表示加整个数组的大小。
C:其他情况一维数组数组名表示数组首元素的地址。例如:int arr[10];int *p=arr;
4.真题演练
给定如下代码,int x[4]={0};int y[4]={1};数组x和y的值为(B)
A:{0,0,0,0},{1,1,1,1}  B:{0,0,0,0},{1,0,0,0}

5.数组的简单输出

#include <stdio.h>
int main()
{
	int drr[]={1,2,3,4,5,6,8,9};
	drr[0]=100;
	drr[6]=12;
	for(int i=0;i<sizeof(drr)/sizeof(drr[0]);i++)
	{
		printf("%d ",drr[i]); 
		//printf("%d ",sizeof(drr));
	}
	return 0;
}
6.将arr的数据逆序输出

#include <stdio.h>
void Show(int arr[],int len)//输出函数
{
	for(int i=0;i<len;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
}
void Reverse(int arr[],int len)//逆序输出。整型数组一定要传长度。
{
	int tmp;
	for(int i=0;i<len/2;i++)
	{
		tmp=arr[i];
		arr[i]=arr[len-i-1];
		arr[len-i-1]=tmp;
	}
Show(arr,len);
}
int main()
{
	int arr[]={1,2,3,4,5,6,7,8,9,10};
	Reverse(arr,sizeof(arr)/sizeof(arr[0]));
	//Show(arr,sizeof(arr)/sizeof(arr[0]));//arr不表示整个数组
	return 0;
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值