数组

格式:

<类型> 变量名称[元素数量];

int grades[100];
double weight[20];

定义:

  • 元素数量必须是整数
  • 是一种放东西的容器
  • 在声明时要明确大小,一旦创建,不能改变大小,
  • 数组中的元素在内存中是连续依次排列的

举例

int a[10]

  • 一个int的数组
  • 10个单元:从a[0]到a[9](下标从0开始计数)
  • 每个单元都是一个int型的变量
  • 可出现在赋值的左边或右边:a[2]=a[1]+6(在赋值左边的叫做左值)
  • 有效的下标值:[0,数组的大小-1]

应用

写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束

#include<stdio.h>
int main
{
	const int number = 10;//数组的大小
	int x;
	int count[number]= {0};//定义数组,并初始化为0
	int i;
	
	scanf("%d",&x);
	while ( x!= -1 ) {
		if ( x>=0 && x<=9 ) {
			count[x]++;//数组参与运算
		}
		scanf("%d",&x);
	}
	
	//遍历数组输出
	for ( i=0; i<number; i++ ) {
		printf("%d:%d\n", i, count[i]);
	}
	return 0;
}

求数组的大小

sizeof(a)/sizeof(a[0])

  • sizeof给出整个数组所占据的内容的大小,单位是字节
  • sizeof(a[0])给出数组中单个元素的大小,于是相除就得到了数组的单元个数

数组作为函数参数时,必须用另一个参数来传入数组大小

数组作为函数参数时:

  • 不能在[]中给出数组的大小
  • 不能再利用sizeof来计算数组的元素个数
  • 必须用另一个参数来传入数组大小,如int length

套路

prime[cnt++]=i 把i放进cnt,并使cnt指向下一位

可变长数组

C99中,声明这样的数组,其大小可以用任何有效的表达式来指定,包括那些其值仅在运行时已知的数组。只有本地数组(即带有块域或原型域的数组)可以是可变长度的数组。
例如:

 void f( int dim )
 {
 	char str[dim];		//可变长字符数组str
 	/*  ...   */
 }

这仅限于动态结构的数组定义,不能使用在全局数组、外部数组等具有静态特征的数据结构中。数组str的大小用dim来表示,有传递给f()的值决定,每调用一次f()可以产生不同长度的数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值