我不知道它是如何工作的[+1]?

时间:2017-11-08 22:45:04

标签: c++

我的朋友做了这个代码,我不知道它是如何工作的,例如这个表[+1]

#include <iostream>

using namespace std;

int main()
{
    int a=0;
    int tablica[100];
    for (tablica[0]=1;tablica[a]<=100;tablica[+1]){
        cout << tablica[a] << endl;
        tablica[a]+=1;
    }

}

3 个答案:

答案 0 :(得分:1)

for循环,如:

for (init; test; repeat) {
    body;
}

大致相当于:

init;
while (test) {
    body;
    repeat;
}

所以你给出的循环就像:

tablica[0]=1;
while (tablica[a] <= 100) {
    cout << tablica[a] << endl;
    tablica[a] += 1;
    tablica[+1];
}

由于a已初始化为0且永不更改,因此tablica[a]tablica[0]相同。

tablica[+1]已执行,但它从不使用该数组元素的值。数组元素未初始化,因此其值是不确定的,但由于该值未用于任何事情,因此不存在问题。您可以忽略它的那一部分(编译器很可能会将其优化掉)。

所以这与典型的循环没有太大区别:

for (i = 1; i <= 100; i++) {
    cout << i << endl;
}

你的朋友只是试图通过使用数组元素而不是用于迭代的简单变量来混淆你(和成功),并抛出看起来有点像迭代的无关表达式tablica[+1],但不是'实际上做了什么。

答案 1 :(得分:0)

a始终为0,因此tablica[0]tablica[a]始终是相同的。

for (tablica[0]=1;,现在我们已将tablica[0]初始化为1。

tablica[a]<=100;,当tablica[0]大于100时,这会中断。

tablica[a]+=1;,它实际上在循环中递增。

答案 2 :(得分:-2)

它只是cout tablica[0]但是100次(从1 2 3 ... 100开始),每次递增tablica[0]。变量a永远不会改变。 for tablica[+1]处的tablica[1]等于{{1}},但它只是从中获取价值,并且不做任何事情。