在做leetcode时,遇到个编译错误:
while(j>=0)
{
arrary1[j]=array2[j--];//问题1
}此时编译时会提示数组越界的错误。
出现“问题1”的原因是赋值运算符“=”是从右至左结合,运算时会先取array2[j],再将j减1,然后左边的j就变成了j=j-1,赋值时就变成array1[j-1]。当j的取值为0时,左边的array1就会出现访问过界的情况。
如果改为以下,则没问题:
while(j>=0)
{
arrary1[j]=array2[j];
j--;
}