c语言for后面大括号的区别

intmain(){for(inti=0;i<5;i++)inta=20;}这样在mac下面编译出错但是加了大括号以后没错intmain(){for(inti=0;i<5... int main(){
for(int i=0;i<5;i++)
int a = 20;
}
这样在mac下面编译出错
但是加了大括号以后没错
int main(){
for(int i=0;i<5;i++){
int a = 20;
}
}
求大神解惑!
展开
 我来答
Sk薯片
2016-01-18 · TA获得超过568个赞
知道小有建树答主
回答量:79
采纳率:50%
帮助的人:37.9万
展开全部

  我们在编写C语言程序时需要频繁用到循环,而for循环后面的大括号,有时有,有时没有。

  比如:

for(int i=0;i<10;i++){
    ......;
}

for(int i=0;i<10;i++)
    printf("%d",i);

  而for是否需要加大括号跟for循环的作用域有关。

  若不加大括号,它只包含下面一条语句,若加括号后则包含括号内所有语句。

  即如果循环只有一句话,可以不加大括号,多句话循环就需要扩上括号,另外一点,便是编译器的区别,不同的编译器和编译环境会影响到编译语言的语法,编译方法也会有不同的规范。

幸运的csj16
2019-11-27
知道答主
回答量:4
采纳率:0%
帮助的人:2584
展开全部
一条语句不加,多条语句就加上,总之加了看起来舒服点,代码规范
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2013-10-22 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3653万
展开全部
c语言在定义变量时,要求把所有变量定义语句提前,这就要求你的程序写成:
int main() { int a,i; for ( i=0;i<5;i++ ) a=20; }

实际上,C语言的变量作用域是依赖大括号的,离开了大括号范围,其中的局部变量就不起作用了;int main() { for ( int i=0;i<5;i++ ) { int a=20; } }之所以合法是在循环语句的大括号对中开设了临时变量a,循环结束后即会被放弃。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9af53fb
2013-10-22 · TA获得超过998个赞
知道小有建树答主
回答量:261
采纳率:100%
帮助的人:88.4万
展开全部
我没有mac,不能测试,你看看 去掉int 无 大括号 在mac下试试,如果没有错误则 表示mac下跟着语句时,要先定义变量才能赋值。
即这样:vc+6运行通过
int main(){
for(int i=0;i<5;i++)
int a = 20;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敬扬圭景天
2019-06-13 · TA获得超过3936个赞
知道大有可为答主
回答量:2999
采纳率:27%
帮助的人:460万
展开全部
  我们在编写C语言程序时需要频繁用到循环,而for循环后面的大括号,有时有,有时没有。
  比如:
for(int i=0;i<10;i++){
......;
}
for(int i=0;i<10;i++)
printf("%d",i);
  而for是否需要加大括号跟for循环的作用域有关。
  若不加大括号,它只包含下面一条语句,若加括号后则包含括号内所有语句。
  即如果循环只有一句话,可以不加大括号,多句话循环就需要扩上括号,另外一点,便是编译器的区别,不同的编译器和编译环境会影响到编译语言的语法,编译方法也会有不同的规范。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式