数组--c语言笔记

c语言数组笔记
一.数组定义与储存结构
1.c99新增特性 可以对数组特定元素进行初始化而不用按顺序进行初始化
如:int x[10]={[1]=2,[4]=8,7};
这里x[1],x[4],x[5]分别被赋值2,8,7,其余元素为0。
同样在多维数组中 如:a[2][3]={[0][0]=1,[1][1]=1,[2][2]=1};只给对角线赋值1,其他元素为0。
2.多维数组在进行初始化时,只有一维的大小可以省略,其他大小必须指定。
如:int a[][4]={{1,3,5,7},{2.4.6.8},{3,4,5,6}};
3.多维数组的初值表形式也与一位数组一样,初值表中的初值顺序与数组元素的物理顺序一致。
所以,如:int a[2][3]={85,91,82,95};
则与一位数组一样,此二维数组被赋值的顺序a[0][0]=85,a[0][1]=91…
同样,a[0][4]也是存在的,其值为95.
二.字符数组
1.声明字符
( 1)基本
char a[10];很直接,对于字符串,只能长度为9.
char a[5][10];这里可以存放5个字符串,长度为9.
( 2 两个等价关系
char a[]={‘h’,‘h’,‘h’,‘h’,’\0’}; 等价于 char a[]=“hhhh”;(注意两者之间单双引号)
char a[][3]={{‘h’,‘h’,’\0’},{‘h’,‘h’,‘h’,’\0’}}; 等价于 char a[][4]={“hh”,“hhh”};
在字符串初始化时,字符串终结符’\0’必须要给出,不然其存放的是数组。
其实在声明数组时,可以把n维数组看成是由n-1维数组构成。

三.零散知识点
1.int a[‘0’]等价与a[48].(这里按ASCII来,神奇)
2.char a[4]="abcd"违法因为输入的结构为字符串结构,长度为5,而定义的为4.
3.int n=3,e[n][4]={1,2,3};违法,声明数组时括号内可以采用变量,但变长数组声明时不能进行初始化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值