对于循环无法正确打印

时间:2019-10-06 02:09:38

标签: c++

只是练习做一些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;
}

2 个答案:

答案 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;