| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1253 人关注过本帖
标题:for循环内的类型声明问题
只看楼主 加入收藏
dapeng83
Rank: 1
来 自:河南
等 级:新手上路
帖 子:26
专家分:5
注 册:2009-11-12
结帖率:63.64%
收藏
已结贴  问题点数:10 回复次数:7 
for循环内的类型声明问题
我用的是Turbo C 2.01 英文版,编译一个for循环时,for循环内声明了,却编译不过去,具体是for(int i = 0;i<=count;i++)里面的int有问题;程序具体如下:
#include <stdio.h>

int main(void)
 {
     long sum = 0L;
     int count = 0;
     printf("\nEnter the number of integers you want to sum:");
     scanf("%d",&count);
     
     for(int i = 1;i<=count;i++)
          sum +=i;
     
          printf("\nTotal of the first %d numbers is %ld\n",count,sum);
          return 0;
 }
因为i是for循环内的,for结束后i应给被撤销了,但编译时却说没在main()函数里定义。如果改一下却能够通过,不知道为什么啊,请教一下。改过之后的如下:
#include <stdio.h>

int main(void)
 {
     long  sum = 0L;
     int count = 0;
     int     i = 0;
     printf("\nEnter the number of integers you want to sum:");
     scanf("%d",&count);
     
     for(i = 1;i<=count;i++)
          sum +=i;
     
          printf("\nTotal of the first %d numbers is %ld\n",count,sum);
          return 0;
 }
但是如过是这样的话,i不是成了全局变量了吗?请解释下,谢谢
搜索更多相关主题的帖子: 类型 声明 
2009-12-01 18:47
andytony1234
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:102
注 册:2009-11-9
收藏
得分:2 
i没有成全局变量啊,只是main函数里的变量..要在main函数之外,才是全局变量..
另外,你可以看下for 循环,for(;;)for里面有三个表达式.是吧.
第一个表达式,只执行一次.就是在最开始的时候,执行.后面就不执行了啊.所以他算不得在for循环里吧.我是这么认为的哈...
2009-12-01 18:56
秋天的童话
Rank: 2
等 级:论坛游民
帖 子:33
专家分:92
注 册:2009-12-1
收藏
得分:2 
当for从句退出时,i变量自动被系统释放,也就是说i只能在for从句中使用
2009-12-01 19:12
dapeng83
Rank: 1
来 自:河南
等 级:新手上路
帖 子:26
专家分:5
注 册:2009-11-12
收藏
得分:0 
感谢2楼,但至少for(;;)里面能够声明吧,for(int i = 0;;)这样不行吗
2009-12-01 19:13
hoho568
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:378
注 册:2009-7-14
收藏
得分:2 
  for(int i = 1;i<=count;i++)
          sum +=i;
你的问题在这里;i的工作空间只在()里面,外面用到i,自然是没有定义;你可以把这一句屏蔽掉,编译应该可以通过。
2009-12-01 21:16
wslhnsng
Rank: 2
等 级:论坛游民
帖 子:48
专家分:37
注 册:2009-2-20
收藏
得分:2 
#include<stdio.h>
void main()
{int i,j,k=0,s=0;
scanf("%d",&j);
for(i=1;i<=j;i++)
{s++;

k+=s;}
printf("%d",k);


}  直接加另外一个变量进去就可以了 免得麻烦
2009-12-01 22:44
dapeng83
Rank: 1
来 自:河南
等 级:新手上路
帖 子:26
专家分:5
注 册:2009-11-12
收藏
得分:0 
我看到是C语言入门经典,书上写的就可以在for里定义,如for(int i =0 ; ; )这样,并解释说当for结束后,i就自动释放了,不影响main里的其他的i的使用,但现在就是不能在里面定义,正如5楼所说的,屏蔽掉sum += i;我编译过还是不行啊,能解释一下吗,i的生命期到哪里结束。
2009-12-02 19:12
hoho568
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:378
注 册:2009-7-14
收藏
得分:0 
说过了啊。i只在()里面有意义。。其它都没有定义。。
2009-12-02 19:15
快速回复:for循环内的类型声明问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.111616 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved