2016-10-17 62 views
-6

所以,看起来'我'几乎是C++中的通用计数器。似乎在每个循环中,人们都会重新初始化'我'。我不得不问,为什么他们不全面初始化'我'? '我'仍然必须在每个循环中重新定义,所以我不明白为什么会有任何混淆。为什么人们不能在全球初始化我?

它似乎是这样的:

#include <iostream> 
int i=0; 

int main() 
{ 
    for (i=0;i<3;i++) 
    { 
     std::cout << i << "\n"; 
    } 
    for (i=0;i<5;i++) 
    { 
     std::cout << "hello" << "\n"; 
    } 

    return 0; 
} 

比更容易阅读,并更快地写:

#include <iostream> 

int main() 
{ 
    for (int i=0;i<3;i++) 
    { 
     std::cout << i << "\n"; 
    } 
    for (int i=0;i<5;i++) 
    { 
     std::cout << "hello" << "\n"; 
    } 

    return 0; 
} 
+0

“我必须问,为什么他们不是在全球范围内初始化'我'?不是问题? – iNeedToMakeBetterQuestions

+3

它是一个意见问题,至少,你没有问题,你有一个伟大的名字 – Treycos

+3

定义'我'外循环可能会导致偶然使用'我',我们不想。在每个循环中初始化i表明我们的意图是它是遍历该循环的索引。 – Danh

回答

10

好主意!

这里有一个程序,打印 “hellohello” 五次:

int i; 

void print_twice(const std::string& s) 
{ 
    for (i = 0; i < 2; i++) 
    { 
     std::cout << s; 
    } 
    std::cout << std::endl; 
} 

int main() 
{ 
    for (i = 0; i < 5; i++) 
    { 
     print_twice("hello"); 
    } 
} 

或者......不是吗? (不祥的风琴音乐播放,乌鸦的声音,远处的警笛声)

+3

如果有人希望看到它:https://ideone.com/UiWgHP –

相关问题