当前位置: 代码迷 >> C# >> 刚学c求下,下面2个变量声明有没有区别
  详细解决方案

刚学c求下,下面2个变量声明有没有区别

热度:104   发布时间:2016-05-05 05:16:29.0
刚学c求高手指点下,下面2个变量声明有没有区别

1.
int n= Convert.ToInt32(Console.ReadLine());  只声明一次

while(true)
{
n++;
}

2

while(true)
{
int n= Convert.ToInt32(Console.ReadLine()); ;   //在循环里
n++;
}



wo d 我的意思就是 放到外面和放到里面 结果是一样的.

但是有没有区别呢??比如内存使用?还是什么的?





------解决思路----------------------
有区别,一个变量是while外的,一个是while内的。如果while下面还有代码用到N,第一个N可用,第二个N不可用,会报错!
------解决思路----------------------
作用域不一样,怎么可能没区别。。。
在外面的话n会一直++
在里面的话每次n都是重新readline
------解决思路----------------------
引用:
作用域不一样,怎么可能没区别。。。
在外面的话n会一直++
在里面的话每次n都是重新readline

除此之外,一般单线程我习惯放在外面,多线程放里面。
------解决思路----------------------
当你说出“wo d 我的意思就是 放到外面和放到里面 结果是一样的.”的时候,你会发现,有许多人都不关心“你是如何得到结果的”这个问题,而是急着赶紧拼凑一大堆名词儿概念给你。

实际上,我们死记硬背的东西很有限,懒得去猜测和联想无关的问题,把精力用于创造“结果是一样的”上面,所以才能写出更多更好的程序。

如果结果是一样的,你就不要纠结于概念。对于编程理解的对与错、是与非,都没有意义。
------解决思路----------------------
对于C#来说,没有什么区别。关键看怎么用,比如说
int foo()
{
    for (int i = 1; i < 2; i++)
    {
        int j = 1;
    }
    return j;
}
这样就会报错。
------解决思路----------------------
引用:
哦.那内存占用是不是还是一样的????
是不是第二次分配内存空间的时候 第一次的空间就释放出来了???


一样
不是释放,是在同一个地址
  相关解决方案