题目:简述main()执行前后都发生了什么?
(1)mian()在执行第一行代码之前,调用全局对象、静态对象的构造函数,初始化全局变量、静态变量。
(2)main()函数最后一句代码执行之后会调用在atexit()中注册的函数,并且调用顺序与注册顺序相反。 atexit()函数的参数是一个指向函数的指针,通过将函数名作为参数,可以使函数在atexi()内部完成函数的注册,经过注册的函数会在main()函数的最后一条语句执行之后调用。调用顺序与注册顺序相反,因为注册函数中使用了栈,注册时将函数指针入栈。