免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123456
最近访问板块 发新帖
楼主: 坐在地平线
打印 上一主题 下一主题

[C] c语言中关于for循环的问题 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2011-11-15 14:58 |只看该作者
DOS 也挺不錯的,而且現在也有許多人在用它。可要是誰現在初次接觸計算機還用它做日常使用的 OS, ...
MMMIX 发表于 2011-11-06 15:02



    曾见过某省级人民医院购置一批奔腾4计算机,然后……卸载预装的windows,全部改用DOS……

据说是因为他们上学时只学了DOS,不会用windows……

偶大惊:这可真是买辆劳斯莱斯,套头驴拖着……

论坛徽章:
0
52 [报告]
发表于 2011-11-18 09:22 |只看该作者
也可以在第一个控制表达式中声明循环变量,此时,该变量是循环的本地变量。

这句话的用法是c99标准规定的,也就是说他可以在第一个控制表达式中声明循环变量,但是他的作用域是这个循环块内部,在外部不能被引用。
你可以用这样编译代码:gcc main.c -std=c89
main.c: In function ‘main’:
main.c:4: error: ‘for’ loop initial declarations are only allowed in C99 mode
main.c:4: note: use option -std=c99 or -std=gnu99 to compile your code

main.c

#include <stdio.h>
int main(void)
{
    for (int count = 1; count <= 10; ++count)
    printf("%d\t", count);
    printf("we have finished\n");
    return 0;
}

论坛徽章:
0
53 [报告]
发表于 2011-11-18 10:42 |只看该作者
回复 9# MMMIX


    g++啊
不是GCC

论坛徽章:
0
54 [报告]
发表于 2011-11-18 10:45 |只看该作者
本帖最后由 keytounix 于 2011-11-18 10:57 编辑
本地变量
fender0107401 发表于 2011-11-06 10:54


i.local

论坛徽章:
0
55 [报告]
发表于 2011-11-18 10:52 |只看该作者
回复  hokuhouhi [谢谢了,不过还得打扰一下,该变量是循环的本地变量。循环结束后他就不存在了。所以不能在 ...
坐在地平线 发表于 2011-11-03 17:23



给个简单的eg
//t.c
#include <unistd.h>
int main(int n ,char *v[])

    {
    int count=100;
   for(int count=10;count<11;count ++)
        printf("in for,count=%d\n");

   printf("out of for count=%d",count);


return 0;


}

这个输出结果是
in for,count=10
out for ,count =100

注意
编译的时候是使用g++的
g++ -S t.c
后发现

。。。。
count .local
          xxxxx

count.1087
     do 循环
end count.1087

打印 count.local

end count.local

大约是这个结构

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
56 [报告]
发表于 2011-11-18 13:56 |只看该作者
回复  MMMIX


    g++啊
不是GCC
keytounix 发表于 2011-11-18 10:42



    C 的代码干嘛用 g++ 编译?当然,这么做也不是不可以,但前提是你得知道自己在做什么。

论坛徽章:
0
57 [报告]
发表于 2011-11-18 14:02 |只看该作者
回复 56# MMMIX


    for(int i=0;i<10;i++);
就这个东西
在wintc下不能通过
在vc下能通过
在gcc下不能通过
在g++下能通过
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP