04day(数组、二维数组)

一、数组

  • 概念:
数组:相同数据类型的集合(一块连续内存,有固定长度)--》桶--》大 --》小

一维数组

  • 格式
数据类型      数组名[数组元素个数] = {};
int        arr[5]             = {1,2,3,4,5};
数组名:定义与变量名定义方法一致
[n] :[]才能说明是数组,它数组独有的 n:阿拉伯数字,表示数组元素个数
数组元素个数:arr[0] arr[1] arr[2] arr[3] arr[4] 使用时数组元素下标 = n-1

注意:

数组可以越界访问(读取数据),但是里面的值并非你所想要的值
数组越界千万不可更改里面的值(可能会造成程序出现段错误,程序退出)
数组越界初学者不要尝试使用

写法:
i

nt arr[5] = {1,2,3,4,5}; //定义有5个元素int类型数组,数组名arr; arr[0]=1; arr[1]=2;。。。arr[4]=5;
int arr[5];             //定义有5个元素int类型数组,数组名arr; 若数组为全局变量:arr[0]=0; arr[1]=0;。。。arr[4]=0;若为局部变量:数组未知
int arr[]  = {4,5};      //定义有2个元素int类型数组,数组名arr; arr[0]=4; arr[1]=5;
int arr[];          //数组定义非法,系统无法获取数组大小
int arr[5] = {1,2};       //定义有5个元素int类型数组,数组名arr; arr[0]=1; arr[1]=2;arr[2]=0;arr[3]=0;arr[4]=0;
char ch[5]={'h','e','l','l','o'}; //定义有5个元素char类型数组,数组名ch; ch[0]='h'; ch[1]='e';。。。ch[4]='o';
char ch[5];//定义有5个元素char类型数组,数组名char; 若数组为全部变量:ch[0]='\0'; ch[1]=0;。。。ch[4]=0;若为局部变量:数组未知
char ch[5]={'h','e'};//定义有5个元素char类型数组,数组名char; 若数组为全部变量:ch[0]='h'; ch[1]='e',ch[2] = '\0',ch[3] = '\0',ch[4] = '\0' 
char ch[6]="hello";""来存储字符串,系统会在字符串后面加'\0'
char ch[6]="hello"; == > char ch[6]={'h','e','l','l','o','\0'};
  • 字符型输入及输出方法如下

方法一:

char ch[5]="hell"--> ch[0] = 'h' , ch[1] = 'e';
    
for(i=0; i<5; i++)
{
  scanf("%c",&ch[i]);  //数组输入
}
for(i=0; i<5; i++)
{
   printf("arr[%d] = %c",i,ch[i]);  //数组输出
}

方法二:

char ch[5];

scanf("%s",ch);  //数组输入字符串 ch就是数组地址

printf("ch= %s",ch);  //数组输出
  • sizeof与strlen区别
sizeof:计算数组大小    
strlen:计算数组长度
区别
strlen:计算字符串长度,这个函数计算到'\0',则结束计算。
sizeof:计算数组所占内在大小,包括'\0'

例子

char buffer[]="helloworld";
先将字符串char buffer[]="helloworld";分解为字符:'h','e','l','l','o','w','o','r','l','d','\0'
sizeof(char)    = 1    
sizeof(buffer)     = 11 
strlen(buffer)  = 10
--short
short ch[5] = {88,89,41,20,0};
sizeof(short)    = 2
sizeof(ch)    = 10--short:2个字节 * ch里面元素5 = 10

二维数组

  • 概念:
二维数组:一维数组的数组;数组中的数组(一块连续内存,有固定长度)
  • 写法:
数据存储类型  数组名[大数组元素个数][小数组元素个数]    =   {}

解析:

数据存储类型:char short int ...double 
数组名:与变量命名方式一致
大数组元素个数:阿拉伯数字
小数组元素个数:阿拉伯数字
值:根据数据类型写入值即可

写法参考

写法一--short ch[3][2]={{1,2},{3,4},{5,6}}; //定义了一个short类型的二维数组,大数组个数:3,小数组个数:2 
//ch[0][0]=1,ch[0][1]=2,ch[1][0]=3,ch[1][1]=4,ch[2][0]=5,ch[2][1]=6,
        
short ch[3][2]={1,2,3,4,5,6}; //定义了一个short类型的二维数组,大数组个数:3,小数组个数:2 
//ch[0][0]=1,ch[0][1]=2,ch[1][0]=3,ch[1][1]=4,ch[2][0]=5,ch[2][1]=6,

写法二

short ch[3][2]={1,2,3,4};  ==> short ch[3][2]={{1,2},{3,4},{0,0}};
short ch[3][2]={1,2,{0,4}}; ==> ch[3][2]={{1,2},{0,4},{0,0}};
        
short ch[3][2];//定义了一个short类型的二维数组,大数组个数:3,小数组个数:2  数组名ch;
 若数组为全局变量:ch[0][0]=0; ch[0][1]=0;。。。ch[2][1]=0;
 若为局部变量:数组未知
    
short ch[][]={1,2,3,4,5,6};==>short ch[3][2]={{1,2},{3,4},{5,6}}; //系统自动识别数组长度
  • 错误写法:
int [][]={1,2,3,4,5,6};   //不合法,系统无法确定数组大小
int [3][]=={1,2,3,4,5,6}; //不合法,系统无法确定数组大小
例子:
假设:char ch[3][6]={"hello","hehe","abcd"};
sizeof(ch)         = 18  //计算整个数组的大小
sizeof(ch[1])    = 6      //计算大数组[1]的大小

short ch[3][6]={{1,2,3,4,5,6},{6,34,6,76}};    
sizeof(ch)    = 36 //计算整个数组的大小
sizeof(ch[1])    = 12 //计算大数组[1]的大小    
记住short存储一个数据占用两个字节。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值