MST

星途 面试题库

面试题:C++中main函数执行前全局变量和静态变量的初始化顺序

在C++程序中,假设有全局变量`int globalVar1 = 10;`和静态局部变量`static int staticLocalVar = 20;`(在某个函数内部定义),请描述它们在main函数执行前的初始化顺序,并解释原因。
17.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 初始化顺序:全局变量globalVar1先于静态局部变量staticLocalVar初始化。
  2. 原因
    • 全局变量在程序启动时就会被分配内存并进行初始化,在整个程序的生命周期内都存在。
    • 静态局部变量是在函数第一次被调用时进行初始化,它在函数内保持局部作用域,但具有全局生命周期。在main函数执行前,函数尚未被调用,所以静态局部变量staticLocalVar此时未初始化,而全局变量globalVar1已初始化完成。