为何for循环里能直接用函数里的变量?

f(){intbbb=3;for(intj=0;j<10;j++){inttt=55;bbb=4;}}循环每一次执行完,tt都会被释放吧?这是为何?因为tt是局部变量吧?... f()
{
int bbb =3;
for(int j=0;j<10;j++)
{
int tt =55;
bbb=4;
}

}

循环每一次执行完,tt都会被释放吧?这是为何?因为tt是局部变量吧?

何为局部?就是那个大括号么?那么for循环是不是一个函数呢?

为何 bbb这个变量却能直接在for里面拿来使用,为何不用先传参数?

还有 if ()
{
int ccc;

}

这个ccc会随着大括号执行结束而释放么?
展开
 我来答
帕霖胀谠丈54Av
推荐于2018-04-11 · TA获得超过322个赞
知道小有建树答主
回答量:193
采纳率:75%
帮助的人:99.2万
展开全部
1、循环每一次执行完,tt都会被释放吧?这是为何?因为tt是局部变量吧?
答:正确,每次tt都会被释放的。
2、何为局部?就是那个大括号么?那么for循环是不是一个函数呢?
答:定义在函数内部的变量,根据定义位置不同,有不同的作用域。for只是一个循环体,不是函数。
3、为何 bbb这个变量却能直接在for里面拿来使用,为何不用先传参数?
答:你可以这样理解,bbb定义在for的外层,相对于for来说是一个全局变量,所以可以直接拿来使用。
风若远去何人留
推荐于2016-10-20 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450110
专业C/C++软件开发

向TA提问 私信TA
展开全部

依次回答你的问题

  1.  

循环每一次执行完,tt都会被释放吧?

-->正确 每次都会释放

这是为何?因为tt是局部变量吧?

-->正解 
何为局部?就是那个大括号么?

-->局部变量就是定义在函数内部的变量

    根据在函数内定义位置不同而有不同作用域    

    其作用域可以理解为 从定义位置开始到下一个大括号结束

那么for循环是不是一个函数呢?

-->for循环是C的一个循环语句 不是函数 

为何 bbb这个变量却能直接在for里面拿来使用,为何不用先传参数?

-->不是函数 自然没有参数一说

还有 if ()
{
int  ccc;

}

这个ccc会随着大括号执行结束而释放么?

-->会的 如果外部没有定义过ccc 那样你在大括号后面再使用ccc程序编译会报错 你可以试一下

更多追问追答
追问
局部变量就是定义在函数内部的变量........因为tt是局部变量吧?....-->正解

tt被释放是因为他是局部变量,而你说局部变量就是定义在函数内部。

请问tt所在的函数在哪里?你又说for不是个函数,那他怎么在for里面执行完后就被释放了呢?

同理还有If
追答

给你写个简单的例子吧

int main()
{
    int a = 0;
    printf("%d\n", a);
    {
        int a = 3;
        printf("%d\n", a);
    }
    printf("%d\n", a);
    {
        printf("%d\n", a);
    }
    printf("%d\n", a);
}

这个例子里面定义了两个a

一个是第三行的 一个是第6行的

其中第三行的是整个main中有效 

第6行的 作用域开始于定义点第6行 结束于第8行 大括号

所以输出会是

0

3

0

0

0

一个函数的函数体 是从函数名 往下第一个大括号{开始

到与它匹配的}结束 

所有定义在其中的变量都属于该函数的局部变量

比如

int func()
{
    int a=1;
    if(a)
    {
        int b;
    }
    for(a = 0; a < 100;  a++)
    {
        int c;
    }
}

这个函数里面的a b c都是属于func的局部变量 但是有各自不同的作用域

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰血无双
2013-12-05 · TA获得超过246个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:320万
展开全部
bbb是在for循环外层声明的,循环内有效。。

以}结束,会释放局部变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式