在循环内声明变量,但在外部使用它

Declaring a variable inside loop but using it out side?

本文关键字:外部 循环 声明 变量      更新时间:2023-10-16

正如标题所暗示的那样,如何在循环中声明变量并在外部使用它?

void Function(String s)
{
    for(i = 0; s[i] != ''; ++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

编辑我知道范围的事情,但我看到有人用模板类/函数实现了这一点,但我不知道如何使用模板类/函数来做到这一点。所以有人知道吗?

>{ } - 是范围分隔符,您在其中定义的任何内容都不能在外部访问。因此,如果需要,可以在循环外部声明它,然后可以在循环外部和内部访问它。

No.简化地说,这就是作用域 - 可访问声明变量的作用域。

如果要从外部范围访问变量,则需要在外部作用域中声明该变量:

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