C++静态变量和全局变量哪个先编译! 为什么?

如题所述

这个有关系吗?
这个对于我们来说是透明的

静态变量和全局变量又分为有初始化过的,和没初始化过的,存在不同区域,没有初始化的放在bss段,程序运行时统一置0

初始化的应该就按先后顺序吧
这个真没研究过
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-29
全局和静态都是在栈区建立的,不过谁先谁后每个C++具体的编译方式都不一样的!
第2个回答  2011-05-29
楼上坑爹呢,全局和静态不是在栈区建立的,在程序的数据储存区,先后是不确定的
第3个回答  2011-05-29
简单的说,是未定义的(C++的标准规定).
你的代码不能依赖于这些变量之间的编译次序,否则结果是未定义的.
第4个回答  2011-05-30
看顺序吧
第5个回答  2011-05-31
那得看你先把谁压栈了..

请问C++语言里静态变量和全局变量有什么区别?谢谢
2. 全局变量、静态全局变量、静态局部变量都是在静态存储区(全局数据区)中分配空间的,而局部变量是在栈上分配空间的。3. 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。4. 全局变量和静态变量都是保存在静态存储区中,生命期和程序一样,但是不同的是全局变...

C++局部静态变量在什么时候分配内存和初始化
全局变量是在main函数之前就分配 局部变量在定义时分配,超出作用域后释放 静态局部变量只分配一次,程序退出后才释放 函数参数与局部变量基本上相同在进入函数时分配,函数结束时释放

静态变量和全局变量有什么区别?
1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量。2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对...

...的话解释全局变量与局部变量的区别,静态变量与自动变量的区别_百 ...
全部变量就是在整个工程工都可以调用。比如我在一个标准模块中定义了一个全局变量,那么我无论是在窗体1还是窗体2还是其他地方都可以调用它。而局部变量就不行,比如我在某个窗体定义了一个变量,那么这个变量我就只能在这个窗体中使用。 静态变量,就是当我执行完一个过程后,它的值保存下来了。下次...

C++ 全局变量和全局静态变量有什么区别呢?
2. 全局变量、静态全局变量、静态局部变量都是在静态存储区(全局数据区)中分配空间的,而局部变量是在栈上分配空间的。3. 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问...

static,const,volatile,define关键字的作用与区别
static修饰局部变量时,使得被修饰的变量成为静态变量,存储在静态区。存储在静态区的数据生命周期与程序相同,在main函数之前初始化,在程序退出时销毁。(无论是局部静态还是全局静态)全局变量本来就存储在静态区,因此static并不能改变其存储位置。但是,static限制了其链接属性。被static修饰的全局变量只能...

C++全局变量初始化
在C语言中,全局和静态变量的内存空间为全局,即使未初始化,内存空间也存在。如果进行初始化,初始化操作在代码执行之前完成,属于编译期初始化。对于内置变量,无需资源释放,仅需回收内存空间,因此在程序结束时,全局内存空间被一起回收。而在C++中,引入了对象,这带来了管理全局变量的新挑战。对象需要...

在C语言中,变量的初始化都是在编译阶段完成的.为什么错?
结果是一个整数,除非(char)强转。在局部范围,局部变量是在栈中生存,而全局变量在静态存取,所以是不同的变量,怎么会相等。关于char还有一个特殊的语言就是char *,它在C\/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\\0'为结束的字符串。

全局变量一定是静态变量吗c++
是的 全局变量一定是静态变量

如何理解c++中的关键字static,const,以及#define在定义
const代表constant,意为常数或常量。用于修饰变量,表示其不可修改;用于指针,表示指针指向的对象不可变;用于方法,表示该方法不会改变对象。static含义复杂,有三种含义:应用于全局变量时,表示每个编译单元独立实例化变量。若分别编译foo.cpp与bar.cpp后链接,全局变量a将有两份,分别由函数各自操作。应...

相似回答