字符数组

字符数组

定义:用来存放字符数据的数组,字符数组的一个元素存放一个字符。

例如:char c[10];

c[0]='I';c[1]='';c[2]='m'l;c[3]='a';c[4]='';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y';

以上定义了c为字符数组,包含10个元素。

 

10个元素就用十个格子(10个地址)来存储,即为下图:

C[0]           c[1]            c[2]             c[3]               c[4]             c[5]               c[6]             c[7]            c[8]         c[9](下标)

I

 

m

a

 

h

a

p

p

y

初始化:

char c[10]={'I','','m','a','',;'h','a','p','p','y'};   初始化列表对其进行赋以初值。

引用数组元素

举一个例子:

int arr[10]={1,2,3};

int*p=arr;

*p=10;p++;

*p=20;

如下图:

100              104            108             112           116             1 20           124             128             132              136

 

 

 

 

 

 

 

 

 

 

 

第一个格子地址随机赋为100,后面每次因为是int型(4个字节)所以加4,104,108....到136。

p-->第一个格子,此时讨论p的自加含义 分别有三种 

1.加一个字节

2.加一个单元格

3.加整个数组

分开来讨论,

首先是就加一个字节,把第一个格子里分成四个小格子,然后把10放进去,如此重复,问题存在于太过繁杂。我们知道一个字节是8位,那么当数字极大时会特别大的位数,十分麻烦。打个比方,从一个地方做公交去另一个地方,如果公交走100米停一次,那么走到终点得花费大量的时间,那么效率将大大降低。

然后 加整个数组 ,如果公交从始至终只有起点和终点两站,那么中间的将没法下车。整个加意味着我们从100将重新加到136,无法计算中间值。由此可见加一个单元格是最正确的做法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值