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

问题描述

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

例如:

for(int i=0;i<999;i++){
    for(int j=0;j<999;j++);
}

内层循环每次都定义j会造成多大的消耗呢

解决方案

这个需要看你具体用什么编译器。不过主流编译器(如vs和gcc)这一块优化都比较好,不会反复分配变量。

解决方案二:

以前我也有过这种担心,不过现在看完别人的评论,我有点豁然开朗了,在内层循环中定义变量到底会不会存在重复分配的问题,这涉及到编译器的优化。

解决方案三:

这种基本可以忽略吧,一般都是提倡内层这样定义

解决方案四:

没有任何区别,函数的定义是编译器的事情,运行的时候不存在什么定义,更没有什么开销。

解决方案五:

以现在的运算速度,这个消耗基本可以忽略。

解决方案六:

内层定义比较好,我猜的

解决方案七:

虽然说函数的定义是编译器的事情,这种可以基本忽略,但有时候要考虑变量的作用域

解决方案八:

你是说对编译时候的影响吗?应该是可以忽略不计的吧。。

解决方案九:

除非是类对象或者结构体对象, 在里面与外面, 开销可能会不一样.
基本数据类型, 那是一样一样的, 编译器肯定会优化这个东西.
一般来说, 在进入函数时, 所有的栈变量都分配好空间了. 所以那个for变量写在哪里都是一样的. 具体你可以看一下反汇编代码, 全部就展现在你眼前了.

解决方案十:

这种过,其实你自己做一下性能测试就清楚了,而且编译器都有各种优化开关。-O2

时间: 2024-10-02 04:53:34

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

javascript-怎么将jsp中list变量传给js文件,求大神帮帮忙

问题描述 怎么将jsp中list变量传给js文件,求大神帮帮忙 从后台action传了一个List类型的值bxLists给了jsp页面, 然后我还要将该值传给另一个js文件处理,我先在jsp页面将该值隐藏起来了 jsp页面如下: <input type="hidden" id="bxlists" name="bxlists" value="${bxLists}"/> 然后在js页面定义了一个数组接收 js页面如下:

变量定义-关于在循环中变量的定义问题

问题描述 关于在循环中变量的定义问题 在while或者do..while循环中,可以在循环中定义变量吗?我看书上是可以的,但这样不会出现定义重复吗? 解决方案 每次一个循环函数,变量就被释放了呃,它是局部变量. 解决方案二: 变量的定义和代码的运行是两回事.好比,你函数中定义了一个变量,你代码调用了2次这个函数,你可能认为变量定义会执行2次?实际上定义是给编译器看的,代码执行中定义变量的语句根本不会起作用. 解决方案三: 不同的语言是不一样的.有的语言变量的作用域就是函数,无论是否定义在循环中,

编程c语言-for的外面为什么不能定义变量?

问题描述 for的外面为什么不能定义变量? 搞不懂定义结构体变量时要在for里面定义,或者在main函数的开始时定义,不能在for的外面定义,否则不能通过编译,这是为什么? 解决方案 因为,变量声明必须在函数或块的顶部,在执行了print后,c语言就不许可声明变量了 解决方案二: 看下你的错误信息,按理说放外面放里面都可以. 解决方案三: while条件中不能定义变量 java书写规范问题,for.while.do while{}后面不能直接定义变量或生成对象(在没有大括号的情况下)(C++Pr

Windows Powershell 定义变量_PowerShell

变量可以临时保存数据,因此可以把数据保存在变量中,以便进一步操作. #定义变量 $a=10 $b=4 #计算变量 $result=$a*$b $msg="保存文本" #输出变量 $result $msg 40 保存文本 powershell 不需要显示地去声明,可以自动创建变量,只须记住变量的前缀为$. 创建好了变量后,可以通过变量名输出变量,也可以把变量名存在字符串中.但是有个例外单引号中的字符串不会识别和处理变量名. 选择变量名 在powershell中变量名均是以美元符"

javascript定义变量时有var和没有var的区别探讨_基础知识

我们先来看一段代码 function show(){ alert(abc); } var abc="defg"; show(); 有过C++或Java编程经验的人可能会说:"这程序,死定了,变量竟然在引用了该变量的函数后边定义,bug会灭掉你的."放在浏览器上运行一下,结果怎样?完美运行!接下来我们就说一下这是咋回事--有var和没有var定义的变量的区别. 1.没有var 简明的说,定义变量时省略var是不安全的,不过是合法的.这时无论该变量是在什么位置定义的,解

PowerShell中的变量基础知识介绍_PowerShell

本文介绍在PowerShell中,如何使用变量.变量可以存储程序中的数量,比如开发者的赋值.命令的执行结果等. 变量拿来干嘛的,不用我多说了,写过程序的兄弟们都知道:如果程序中没有变量,那真的就不能让程序了!连批处理里面都有变量了,那PowerShell中自然就更不能没有. 1.PowerShell中的变量都是对象 PowerShell中的变量是基于.NET Framework的,所以PowerShell中的变量跟.NET中的变量一样:都是对象,通通都是对象! 复制代码 代码如下: $i=1 $

java-关于Java定义变量的命名方法

问题描述 关于Java定义变量的命名方法 我知道一些大的公司例如华为中兴,对Java定义变量的命名都有严格的方法,我是一个刚刚接触Java的新手,想现在就养成习惯,谁能告诉我一下,或者你们有自己好的命名方法也可以告诉我,谢谢 解决方案 想象一下你一次要定义一千个变量,类型还不一样,怎样起名字方便呢?那你就怎么样定义变量 解决方案二: 基础要求: 1.名称必须有意义,例如:name,people. 2.多个单词的话连起来写,首字母不大写,其他单词字母大写,如果你分不清单词,可以在中间加上下划线 3

代码-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; } 程序会报错

如何在smarty模板中定义变量与常量

  定义常量非常的简单 方法是:  代码如下   {$smarty.const.你定义的常量名} 定义变量如何做呢? smarty中定义变量 . {*下面的这一段相当于在模板内部定义一个变量UserName*}  代码如下   {assign var="UserName" value="myz"} 这里将显示模板内部定义的一个变量:UserName = {$UserName} 例子  代码如下   <*assign var="i" valu