2014-12-07 66 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"); 
    } 
} 
相關問題