c语言中数组下标加减、移位的分析

从3-(n-1)总共有多少个元素?

数组下标加了某值后,此时下标是多少?

情况是否都包含完整?

例如:

for(int i=temp->length-1; i>=n-1;i--)//转化为数组的下标,最后一个下标和第n个下标
{
    temp->list[i+1]= temp->list[i];
}

分析:

求下标值,其实是数学问题:

1234...9596979899
1111...11111

1)1-99,是多少个数?---->99个数,我们习惯从1开始数数。//减法问题

2)3-99,是多少个数?---->97个数, 99-3+1 =97。//减法问题

 可以这么理解:小明有3个苹果,小红有99个苹果,小红比小明多几个苹果?多99-3=96个苹果。

所以:3是指前3个苹果,99是指99个苹果。

所所以:3---99共有多少个数? 99-3 +1

3)int*p = list[0];    //加法问题

int length ;//数组长度

int *q = p+length;//q指向的是尾数据的下一个

01234...9596979899
11111...11111

小结:

减法,是往左平移,减多少,往左平移多少;表示是少了多少个;99-96=3;指针平移到了3上

加法,是往右平移,加多少,往右平移多少。表示是多了多少个;3+96=99;指针平移到了99上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值