重复定义同名静态变量

重复定义同名静态变量

问:静态局部变量可重复定义吗
  1. 答:你的概念很有问题,什么变量都不可以重复定义。写在函数中的自动变量声明或定义,在进入这个函数时声明或定义,退出这个函数时自动撤消了,所以根本不存在“重复定义”的问题。第二个问题,用static修饰声明的变量不是自动变量,叫“静态变量”;这种变量在第一次调用这个函数时定义,每次调用生成的值保存到下次调用时使用……
    补充:局部静态变量的定义时刻,请参看风雷雪电对我的评论!
  2. 答:局部变量只在被调用的函数中被定义,从函数中返回时,就释放了。你不要被变量的名称迷惑了,虽然名字相同,但再一次定义时,又会存放在内存的不同地址中,不会混淆。你只当它们的名称不一样就行了。
    就像3班有个人叫张三,4班有个人也叫张三。3班的班主任和4班的班主任都不会把他们搞混的。
  3. 答:这个应该是可以的,不太了解的。
问:java中超类中定义了静态变量,多个子类继承时,会不会多次重复定义静态变量?
  1. 答:不会,如果子类中没有使用同名的同类型的静态变量覆盖父类的静态变量,这个静态变量始终是一个。不会出现,多个子类重复定义的情况,
  2. 答:如果在父类中定义了一个静态变量并初始化,不管多少个继承子类,所有子类都有同一个属性,不会重复定义静态变量。
    我是看物理地址确定的,实践出真知,我相信是正确的,请参考。
问:C语言:各函数内部定义的静态局部变量可否同名?
  1. 答:可以、、
    静态局部变量在函数调用结束后仍然存在,及它的内存空间不会被释放,但其他函数是不能引用它的。因为它是局部变量,只能被本函数引用,而不能被其他函数引用。所以你在其他函数中命名一个同名的变量是不冲突的、、
  2. 答:答案是可以的···首先我们把这个“静态局部变量”分为两个来分析“局部”和“静态”··现在先来分析“局部”,所谓的局部就是只在本函数范围内有效··所谓的“静态”就是在函数结束的时候内存不会释放··我们平时一般定义的int a;前面系统自动加上了auto·(也就是动态·)在函数结束的时候··会自动释放内存·················所谓所谓的“静态局部变量”就是只在本函数范围内有效的,并且在函数结束的时候不会释放内存···········希望可以帮助你理解三个定义“局部”“静态”“局部静态”
  3. 答:可以的。如果定义一个全局变量,你在各个函数里面如果不用extern引用他,你单定义的静态局部变量也是和全局变量不矛盾的。
  4. 答:同一个函数内部,不行。
  5. 答:可以 除了全局变量 在功能函数里定义的变量的作用域就只在这个功能函数里
重复定义同名静态变量
下载Doc文档

猜你喜欢