数组(一)

数组,即多个元素的组合。一个数组可以分解为多个数组元素,每个元素的数据类型必须相同。每个元素在数组中有一个“下标”,用来表示他在数组中的序号,下标从0开始计算。数组可分为数值数组、字符数组、指针数组、结构数组等各种类别。目前,根据我个人学习,先在这里对数值数组和字符数组进行整理。

数值数组
在这里我们来看数值数组的定义,数组先定义后使用,我们通过以下的一些表示方法来学习。如 int a[8]; 表示数组名是a,包涵8 个元素,都为int型变量。

		int  a[7]={1,2,3,4,5,6,7}; //数值数组输入7个元素,用 {} 输入
		int  b[10]={0};  //把数组的所有元素都初始化0;
	   int   c[]={1,3,5,7};//相当于c[4]={1,3,5,7};

在数值数组中,常常遇到一些低级的错误的表示方法,特别对于我们初学者不太敏感,很多情况下难以分辨:
int a[2]={1,2,3}; //错误!初始值太多,大于数组容量,这个显然是不可以的;
int a[3];
a={1,2,3}; //这个也是错误的,错误在于不能对数组名直接赋值;
int a[3];
a[3]=10; //下标越界,下标的取值只能为0,1,2

接下来,我们用数值数组写一个简单的小程序:
#include<stdio.h>
main(){
int a[7]={1,2,3,4,5,6,7};//输入值用{}
printf("%d,%d\n",a[3],a[6]);//显示数组中对应的对应存储的值
printf(“数组占用了%d 个字节,一共有 %d 个元素\n”,sizeof©,sizeof©/sizeof(c[0]));
return 0;
} //该程序实现在屏幕中显示数组中所要输出的对应的存储的值,并显示该元素含有的字节数

字符串数组
字符串数组的输出形式可以先通过这两个程序在说明:
程序一:
#include<stdio.h>
main(){
/*char name[10];
name[0]=‘J’;
name[1]=‘a’;
name[2]=‘c’;
name[3]=‘k’;
printf("%s\n",name);//输出字符串Jack
程序二
#include<stdio.h>
main(){
char id[5]=“Jack”;
printf("%s",id);//在屏幕输出Jack
}
通过以上两个小程序不难看出,上述两种方式输出到屏幕的结果相同,这两种输出方式就是输入字符串的两个方式,无疑程序二显得更加简单。那么问题来了,在程序二中,如果我们只想让她输出部分字符串的话,除了使用程序一的方式,还可以怎样表示呢?
其实,就程序二而言,比如我们要输入Jack的前三个字母,我们可以:

#include<stdio.h>
main(){
char id[5]=“Jack”;
id[3]=0; //‘R’,‘o’,‘c’,‘k’,不难理解,id[3]对应的是c,现在赋给0,就将其视作结束符
printf("%s",id);//在屏幕输出Jac
}
接下来我们再看这样的一种情况:
char name[16];
scanf("%s",&name);
printf("%s",name);
return 0;
}
在这里输入angela baby,可是结果输出的只有angela,因为scanf()(除了字符型%c)遇到空格就停止 ,那么在这种情况下,我们就需要换个函数:
#include<stdio.h>
main(){

		char name[10];
		gets(name);
		printf("您输入的字符串上是: %s",name);
		return 0;
		tong
	}

gets()函数发生字符串越界也不会报错,故而函数比较危险

		char name[10];
			fgets(name,10,stdin);//比较安全,不会出现越界
			printf("您输入的字符串上是: %s",name);
			return 0;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值