数组

本文详细介绍了数组的概念、分类及使用方法,并重点讲解了一维数组和二维数组的声明、赋值和输出过程。此外,还探讨了字符串作为特殊字符数组的应用。

一.数组
1.定义:一组 数据类型相同 的数据的集合
 本质,是内存中一段连续的存储空间

2.组成:
 数据类型:限制了数组元素的类型
 数组名:这一组数值 共有一个名称
 长度:规定了最多可存储的元素的个数
 值:每个元素
 下标:从0开始 [最小下标是:0    最大下标:长度-1]

3.分类
 1.按照数据类型来分:

 char 类型的一个数组 'a','b','s','f','y','n'
 int 类型的一个数组 1,2,3,5
 double 类型的一个数组 3.14 0.01 99.999 100 101
 float 类型的数组
 结构体数组等

 
 2.按照维数来分:
 一维数组:只有一个下标
 多维数组:有2个或2个以上的下标


一维数组
1.使用语法
 1.声明
 数据类型 数组名[长度];

 注意:
  1.声明数组时,一定要给定长度
  2."长度"是一个整形的常量,不能是一个变量

 2.赋值
方法一:先声明再赋值
 int arr[5];[必须写长度]
 arr[0]=11;
 arr[1]=22;
 arr[4]=55;
 arr[5]=10;//错误,下标越界,因为最大下标是 5-1

方法二:声明时赋值
 int arr[5]={1,2,3,4,5};
 int arr[]={1,2,3,4}; [正确:长度可省略]
 int arr[5]={1,2,3};[正确:空间有剩余]
 int arr[5]={1,12,3,4,5,6}; [错误:下标越界]


方法三:使用for循环,动态赋值
 int arr[5]
 int i;
 //循环从0开始:因为数组元素的下标是从0开始
 //<31??? 而不是<=31:因为数组的最大下标是 31-1,循环到30就结束
 for(i=0;i<5;i++)
 {
  printf("请输入第%d个学员的成绩:",(i+1));
  scanf("%d",&score[i]);
 }


2.输出:
 for(i=0;i<5;i++)
 {
  printf("第%d个元素=%d\n",(i+1),score[i]);
 }

3.关于一维数组的算法
 求最大值
 求最小值
 求总和
 求平均值

警告错误:
int a[5];
a={1,2,3,4,5};   错误


int b[5]={1,2,3,4,5};
a = b;   错误

 

 


二:字符串
字符串
 本质是一个字符数组
与字符数组的区别是:最后一个字符以'\0'结尾

 例如:
 char ch[4]={'s','c','c','e'};//正确:字符数组 长度是4
 char str[5]="scce";//正确:字符数字 长度为 5
 char name[]="asdf";//正确

 char str[4]="scce";//语法错误:下标越界
 

使用语法:
 1。声明一个字符串
 char name[20];//姓名
 char sex[5];//性别

 2.给一个字符串赋值
 
 printf("请输入姓名:");
 scanf("%s",name);

 printf("请输入性别:");
 scanf("%s",sex);

 3。输出一个字符串
 printf("姓名:%s\n",name);
 printf("性别:%s\n",sex);


三。二维数组

1。语法:
 数据类型  数组名[行数][列数]
 例如:声明一个3行4列的int类型二维数组
 int num[3][4];

 行下标:从0开始,最大行下标=3-1     2
 列下标:从0开始,最大列下标=4-1     3
 此二维数组中,最多能存3*4个元素

2。赋值
方法一:
 num[0][0]=3;
 num[0][1]=4;
 ... ...
 num[3][4]=5;//错误,下标越界 


方法二:声明时赋值
 int num[3][4]={
  {1,2,3},
  {1,2},
  {3,5,6}
  };

 int num[3][4]={1,2,3,1,2,3,5,6} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值