有下面一段代码
int c[5]={1,2,3,4,5}; int p1=0,p2=0; cout<<"c[P++]的结果"<<c[p1++]<<endl; cout<<"c[++P]的结果"<<c[++p2]<<endl;
你猜结果会是什么?
答案是c[p1++]=1
,c[++p2]=2
。
为什么呢?
我们可以用p
等价替换p1++
以及++p2
。那么就是
int p; p=p1++; cout<<"c[P++]的结果"<<c[p]<<endl; p=++p2; cout<<"c[++P]的结果"<<c[p]<<endl;
p1++
的操作是先将p1
的值赋值给p
,然后p=p+1
;而++p2
是先p2=p2+1
,然后再将更新后的p2
值赋值给p
。
对于最开始的代码,c[p1++]
对应c[0]
的值,c[++p2]
对应c[1]
的值。
这样写的好处可以减少代码行数,让人感觉高级一点。
PS:数组下标是从0
开始的,假设数组长度为n
,则数组下标的最后一个位置是n-1
。因此c[5]
对应下标的第一个位置为0
,最后一个位置为4
,数组长度为5
。