[英]I don't know how it work table[+1]?
我的初學者朋友執行此代碼,我不知道它如何工作,例如此表[+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;
}
}
一個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]
,但實際上並沒有這樣做任何東西。
a
始終為0,因此tablica[0]
和tablica[a]
始終相同。
for (tablica[0]=1;
tablica[0]
現在我們已經將tablica[0]
初始化為1。
tablica[a]<=100;
,當tablica[0]
大於100時,它將中斷。
tablica[a]+=1;
,它實際上在循環中被遞增。
它只是退出tablica[0]
但是會tablica[0]
100次(從1 2 3 .. 100開始),每次遞增tablica[0]
。 變量a
永不更改。 在for
其中的tablica[+1]
等於tablica[1]
但它只是從它那里得到的值,不要做任何事情與它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.