代码-for循环中定义的变量 在程序的其他地方无法使用

问题描述

for循环中定义的变量 在程序的其他地方无法使用

RT
code
运行环境:win7 dev c++

 # include <stdio.h>
# include <stdlib.h>
# include <windows.h>
int main ()

{

    for(int i = 1;i<=100;i++)
    {
        printf("%d
",i);
    }

    printf("%d
",i);
    return 0;
} 

程序会报错关于i的值的问题
[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]
Note
英语渣 用百度翻译出一堆看出懂的东西
[Error] lookup name of'i'改变 为 ISO'for'scoping [-fpermissive]
[Note] ( 如果 你 使用'-fpermissive'G++ 将 接受 你 的 代码 )
乱七八糟的 好像是在for循环中定义的变量i在printf里面不能使用 是这样吗?
我在for循环外面又定义了一次变量i 结果就可以在printf里面使用了.

解决方案

变量的作用域问题,一般以{}为界

解决方案二:

for循环内变量定义问题
Struts2 标签定义变量及for循环
Struts2 标签定义变量及for循环

解决方案三:

变量i是在for循环中定义的,作用域在for循环以内。

解决方案四:

变量定义的范围问题,你在for里定义,只在for中有效,到了printf时,变量已经无效了。

时间: 2024-09-20 17:22:51

代码-for循环中定义的变量 在程序的其他地方无法使用的相关文章

在循环体中定义的变量怎么不能到外面用??

问题描述 在循环体中定义的变量怎么不能到外面用??如:for(i=0;i<10;i++){respons.write(i);}respons.write(i);怎么这样会报错??上下文不存在i??帮我个忙``` 解决方案 解决方案二:变量作用域解决方案三:for循环中定义的变量局部于for循环的代码块(大括号内),循环之外不是他的作用域.(从你的代码看变量i应该不是局部变量,这样for(inti=0;i<10;i++)才是).你可以这样:inti;for(i=0;i<10;i++){re

c++-C++内层循环中定义变量和在外面定义比影响大吗

问题描述 C++内层循环中定义变量和在外面定义比影响大吗 例如: for(int i=0;i<999;i++){ for(int j=0;j<999;j++); } 内层循环每次都定义j会造成多大的消耗呢 解决方案 这个需要看你具体用什么编译器.不过主流编译器(如vs和gcc)这一块优化都比较好,不会反复分配变量. 解决方案二: 以前我也有过这种担心,不过现在看完别人的评论,我有点豁然开朗了,在内层循环中定义变量到底会不会存在重复分配的问题,这涉及到编译器的优化. 解决方案三: 这种基本可以忽

link中可以通过代码发射去调用let中定义的变量么?怎么实现?

问题描述 link中可以通过代码发射去调用let中定义的变量么?怎么实现? link中可以通过代码发射去调用let中定义的变量么?怎么实现? 解决方案 不可以,因为select以后,这些字段在select产生的匿名对象自动被提取出来了.

js中定义一个变量并判断其是否为空的方法_javascript技巧

js中定义一个变量 var params=null;判断params不为空的方法: 复制代码 代码如下: if(params && params.hasOwnProperty("name")){} 其中:console.info(params);//结果为:Object {}

javascript-jsp中嵌入了js,我如何将js中定义的变量保存一个星期,就类似于计数器之类的变量

问题描述 jsp中嵌入了js,我如何将js中定义的变量保存一个星期,就类似于计数器之类的变量 我要怎么让我的三维数组temporary保存一个星期,并且值不会每次一刷新页面就重置,然后要把值传回给action层 解决方案 js中如何判断一个变量未定义js判断一个变量是否定义的方法 解决方案二: window.onload=function(){ var temporary = new Array(); for(var i=0;i<6;i++){ temporary[i] = new Array(

delphi-Delphi中,怎么获取DLL中定义的变量

问题描述 Delphi中,怎么获取DLL中定义的变量 可以使用动态加载或静态加载的方式使用DLL中的方法,但是怎么能够获取DLL中定义的变量来使用它呢? 解决方案 要明确2个概念: 1.Dll是EXE的一个变种形态.它是可执行的. 2.Dll虽然由EXE调用,但执行读入内存后,Dll与EXE分别是独立的内存区域,相互不联系的.二者的数据(变量等)不能传递的. 为了能让Dll是EXE通联,往往可以通过以下几种方式建立联系. 1.发消息,它是单相思,消息发出后,对方知道否,接受了吗,不得而知. 2.

link中定义的变量是放在堆栈上还是放在哪里?它和主程序共用堆栈?

问题描述 link中定义的变量是放在堆栈上还是放在哪里?它和主程序共用堆栈? link中定义的变量是放在堆栈上还是放在哪里?它和主程序共用堆栈? 解决方案 当然是放在堆栈上,lambda表达式运行时会被编译为函数,这个函数和一般的函数没有区别.

如何在.NET中定义一个变量用于存储多次运行一个页面进行的运算

问题描述 例如做一个工资计算器,同页面运行计算器,点击计算按钮3次,将每次合计的数保存下来,最后点击总计时出现3次合计总和.类似这种储存数据的变量怎么定义??? 解决方案 解决方案二:可用js或者隐藏的控件或者服务器缓存或者cookie之类的解决方案三:加入我要存储数据的是一个DATATABLE那怎么办....解决方案四:序列化...解决方案五:能不能给个例子..有点虚幻...

局部变量-循环内定义变量,和循环外定义变量的问题

问题描述 循环内定义变量,和循环外定义变量的问题 循环外定义变量 tempReportInfo public ArrayList<ReportInfo> getAllReportInfos() { ArrayList<ReportInfo> reportInfos = new ArrayList<ReportInfo>(); Cursor cursor = null; ReportInfo tempReportInfo = new ReportInfo(); synch