只是练习做一些c ++练习。
在我的代码中,我不明白为什么我的for循环没有按从高到低的顺序打印数组。它只打印0。
int main()
{
int num[2];
int* ptr = num;
cin >> *ptr;
cin >> *(ptr + 1);
for (int i = 1; i <= 2; i- -)
cout << *(ptr + i) << endl;
}
答案 0 :(得分:0)
从我试图理解的角度来看这是正确的吗?
for(int i = 1; i <= 2; i--) cout << *(ptr + i);
变量i将从0减到负- 那么它将保持递减和测试吗? -1 <= 2,-2 <=-2,-3 <= 2,使循环永无止境吗?
答案 1 :(得分:0)
从最高到最低打印阵列。
除了循环条件外,您几乎正确地完成了操作。您应该从最高的索引到最低的索引(从1到0)进行迭代。换句话说,从索引1开始,将索引减小到0,如果索引违反条件,则退出循环。
for (int i = 1; i >= 0; i--)
cout << *(ptr + i) << endl;