从3-(n-1)总共有多少个元素?
数组下标加了某值后,此时下标是多少?
情况是否都包含完整?
例如:
for(int i=temp->length-1; i>=n-1;i--)//转化为数组的下标,最后一个下标和第n个下标
{
temp->list[i+1]= temp->list[i];
}
分析:
求下标值,其实是数学问题:
1 | 2 | 3 | 4 | ... | 95 | 96 | 97 | 98 | 99 |
1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | 1 | 1 |
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指向的是尾数据的下一个
0 | 1 | 2 | 3 | 4 | ... | 95 | 96 | 97 | 98 | 99 |
1 | 1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | 1 | 1 |
小结:
减法,是往左平移,减多少,往左平移多少;表示是少了多少个;99-96=3;指针平移到了3上
加法,是往右平移,加多少,往右平移多少。表示是多了多少个;3+96=99;指针平移到了99上。