2014-12-07 65 views
-1

由于标题建议如何在循环内声明一个变量并在外部使用它?在循环内声明一个变量,但在外面使用它?

void Function(String s) 
{ 
    for(i = 0; s[i] != '\0'; ++i) 
    { 
     switch(s[i]) 
     { 
      case 'i':int x; 
      case 'd':double x; 
      case 'c':char x; 
     }//end of switch 
    }//end of for loop 

    //now i want to use 'x' here,i.e.,out side the loop how will i do it? 

}//end of void function 

编辑我所知道的范围内的事情,但我看到了一些用一个模板类/函数实现这一点,但我不知道如何使用模板类/ FUNC做到这一点..所以谁知道?

+2

这是很简单:你不能。 – juanchopanza 2014-12-07 10:53:37

+0

...所以在循环之外定义它。如果你想通过不定义你不需要的类型来节省内存,使用联合。该开关只设置了一些类型标志使用什么...... – deviantfan 2014-12-07 10:55:52

+0

好吧,我知道范围的东西......这就是为什么我问这个问题._。但我看到某个地方有人使用模板类/ func但idk如何使用模板类/ func来实现这一点,所以任何人都知道? – Zeus 2014-12-07 11:02:36

回答

0

{} - 是范围分隔符,您在其中定义的任何内容都无法在外部访问。所以如果你愿意,你可以在循环之外声明它,然后你可以在外部和内部循环访问它。

0

不能。简化,这就是范围 - 声明变量可以访问的范围。

需要声明的变量外的范围,如果你想从那里访问:

{ 
    int x = 0; 
    for (...) 
    { 
     x= 1; 
    } 
    if (x ==1) 
    { 
     printf("it works"); 
    } 
} 
相关问题