菜鸟:为什么在for循环里重复定义变量不会报错?

作者&投稿:延度 (若有异议请与网页底部的电邮联系)
C语言为何这个程序在运行时会提示for循环里的i重复定义了?局部变量应该没影响啊~

奇怪的问题……可能是编译器的版本太老?
总之就听它的,只定义一次i就行了。

keil中, 在for循环里面是不能定义变量的,定义就会出错。
要定义变量,分为全局变量和局部变量。
要定义全局变量,在主程序的最前面定义。
要定义局部变量,要在 void main()
{
//在这首先定义,下面再写程序
//只要有一行是可执行的语句,再定义变量就是错误的。
或者是子函数所用变量,也要在子函数的大括号下面,先定义,不能先写可执行语句,后定义就出错。

因为变量的作用域不同,代码一种两个变量a的作用域都是main函数,所以会造成冲突,而代码二中你只定义了一个a
当然,如果在for之前还有一个int a也不会报错,因为在for循环里面的a的作用域只有for{}之间这一段,而在for之外的a的作用域是从定义开始直到被销毁,所以不会报错

变量是用作用域的啊,也就是生存周期!!!!
当两个变量名一致,并且生存周期重复就会报错!!!
在for循环声明变量,生存周期在下一次for循环开始时就结束了。。

你的代码2中只定义了一次a啊,不过可以告诉你的是,如果在for循环里定义了变量,那当for循环结束以后变量就会被销毁了,也就是说这个变量是局部变量不是全局变量,它之作用在这个循环。例如,这样写是对的:
int main(){
for(int a=0;a<=100;a++){}
int a=3;
cout<<a<<endl;
return 0;
}
这两个a是不同的值,没有任何关系,该程序运行的结果是3而不是100;

在for中这个int a寿命只有一次循环
即每次循环之后a的内存就被回收了 下次循环再分配一个

很简单,这是局部变量问题,在for语句中定义的变量只是暂时性存在,执行结束,定义变量释放空间,“消失”,它与主程序定义的全局变量并不是在同一栈上


of和for的用法和区别?
②This gift is for my friend. 这个礼物是给我的朋友的。区别三:表示目的的不同 of一般不于表示目的,而for常用于表示目的。例句:①The function of this tool is unknown. 这个工具的功能未知。②I bought this dress for the party. 我购买了这件衣服参加派对。区别四:在表示比例、价格等...

鸟什么英文怎么写作文
1. 鸟的英文怎么写 英文:bird 拼音:niǎo 注音:ㄋㄧㄠ 字典解释:脊椎动物的一类,温血卵生,用肺呼吸,几乎全身有羽毛,后肢能行走,前肢变为翅,大多数能飞。口语:于“了(liao3)”字同意,如“受不鸟”等同于“受不了”。鸟 niao 1.a bird 部首:鸟,部外笔画:0,总笔画:5 ...

英语问题
选D The day broke,___birds began to sing.天亮了,鸟儿开始歌唱了。for ,because,as,since这四个词作为连词,都有"因为"的意思,但它们在用法上有区别:because 是从属连词,接表示直接原因的从句,一般放在主句的后面,也可放在主句前面,它表示的语气最强,在回答why的问句时,必须用because。例...

鸟的英语单词怎么写?
1)If we've redeemed this dangerous supplement for man, what about the fowl of the air and thebeasts of the field?我们人赎回了这危险的遗失,那么天空中的飞禽田野中的猛兽又如何?2)They contended that land animals that began to adapt to aquatic life would soon be neither fowlnor...

bat中的“for”的用法。~
学批处理当然要学到for了 看看他的基本格式 FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令 参数:FOR有4个参数 \/d \/l \/r \/f 比较常用的是\/f参数 变量名 :这个变量名可以是小写a-z或者大写A-Z,他们区分大小写哦~IN:命令的格式,照写就是了!(相关文件或命令) :FOR要把...

在while中(或for循环中)switch出问题了!麻烦高手指点一下!我是菜鸟...
是这个原因:因为在你输入w按下回车键 回车换行也作为了一个字符存储在了缓冲区中,等下一次执行到scanf时 i的值就变成了'\\n'所以会输出wrong 解决办法就是在 scanf这句后面加上一个接收上面的回车符的 getchar();不加while时 产生的回车符不会参与到运算中去 因为程序只执行一次.include<stdio.h>...

鸟的体形对飞影响
首先,鸟类的身体外面是轻而温暖的羽毛,羽毛不仅具有保温作用,而且使鸟类外型呈流线形,在空气中运动时受到的阻力最小,有利于飞翔,飞行时,两只翅膀不断上下扇动,豉动气流,就会发生巨大的下压抵抗力,使鸟体快速向前飞行。 其次,鸟类的骨骼坚薄而轻,骨头是空心的,里面充有空气,解剖鸟的身体骨骼还可以看出,鸟的头骨...

关于matlab在for循环中画图
把figure;改为figure(j);不然每画一遍之前的就被覆盖代替了。相关语法是figure(h),其中h表示画的图形对象的句柄,若该句柄已存在,相应的图形框则被设为当前图形对象;若此句柄不存在,则将以该值为句柄,新建一个图形对象。另h需为整数值。

鸟的单词英语怎么拼写
bird wing 鸟翅膀 介词+~for the birds 荒唐 eat like a bird 吃得少 ~+介词 bird of ill omen 不祥之鸟 bird of passage 候鸟,行踪不定的人 bird of prey 猛禽 bird of wonder 凤凰 【词语用法】n. (名词)1.bird的基本意思是“鸟”,指区别于走兽、鱼、昆虫等可在天空飞行(除个别种类...

...站根线上挤来挤去的,最后全掉下去了。这是什么动画片啊?_百度知 ...
这个电影的名字叫做《For the bird》,中文名叫《鸟、鸟、鸟》,是皮克斯公司出品的。

祁东县19724558959: 为什么在for循环里重复定义变量不会报错 -
少冉畅邦: 因为变量的作用域不同,代码一种两个变量a的作用域都是main函数,所以会造成冲突,而代码二中你只定义了一个a 当然,如果在for之前还有一个int a也不会报错,因为在for循环里面的a的作用域只有for{}之间这一段,而在for之外的a的作用域是从定义开始直到被销毁,所以不会报错

祁东县19724558959: C语言为何这个程序在运行时会提示for循环里的i重复定义了?局部变量应该没影响啊 -
少冉畅邦: 奇怪的问题……可能是编译器的版本太老?总之就听它的,只定义一次i就行了.

祁东县19724558959: for语句中定义了int j;为什么第二次用for语句还要重新定义 -
少冉畅邦: 局部变量,只在定义的那个块里面起作用,你在for语句中定义的,那么它就只在这个for语句包含的块里面有效,如下:for(){ } 其它地方无效

祁东县19724558959: 为什么java 重复定义变量问题?是什么问题 -
少冉畅邦: 可以编译通过.因为你的变量定义在选择结构不同的作用域内,if大括号一个,else大括号一个.变量的作用域指定义在哪个大括号内,就在哪个大括号内生效.但是在同一个大括号内就不能同时定义相同的变量名称,否则报错

祁东县19724558959: 急急急急 为什么C++中非嵌套for循环中分别定义两个名字相同的变量 会弹出变量重复定义的错误 -
少冉畅邦: VC6的错误 VC 2003以上版本已经修复这个问题了 for (int a = 0; ...) { }// VC6中,变量a在这里仍然有效,但这是不符合C++规范的1. 改用不同的变量名 2. 把变量拿到外面来定义 3. 换用vc 2003以上版本

祁东县19724558959: C++重复定义怎么回事 -
少冉畅邦: C++早就考虑到这个问题了.在BinTree.h中添加: #ifndef BINTREE_H #define BINTREE_H//这里是你原来的代码#endif

祁东县19724558959: 关于C语言for循环嵌套中的记录循环变量的问题
少冉畅邦: 同一个for语句里边不行,分开可以,嵌套也是在第二个for语句下 ,嵌套的for下不能重,被嵌套的不能重

祁东县19724558959: 为什么 要在for后面在定义. -
少冉畅邦: 在内层的for (j = 1 ; j < i ; j++)循环中写改变shu的值,当执行下一行for (i = begin + 1 ; i < end ; i++)循环时,按照你程序的意图,应该不是希望使用shu上次的结果来参与运算的,而是希望从零开始.所以才在j循环前将shu赋值为零.

祁东县19724558959: 为什么会提示我说I重复定义了呢?是头文件的问题吗? #include<iostream> #include<cstring> -
少冉畅邦: 是编译器的问题,vc6.0就会报错的.不妨这样:int i; for(i=0;i { if(ch1[i]>='a') ch1[i]=ch1[i]-len; } for(i=0;i { if(ch1[i]=='J')ch1[i]='I'; }

祁东县19724558959: C语言中程序如:for( ; ;);为什么是死循环? -
少冉畅邦: 您好,for(;;);这个循环相当于while(1);这个语句就是无限循环;在for语句当中,第一个是初始化数据,第二个用于条件判断,第三个用于循环操作.当第二缺省的时候,系统会直接判定为1,相当于不初始化数据,不进行循环操作,条件判断始终为真,始终进行空操作,不断循环,直至死机

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网