c++中,全局变量,局部变量,静态变量的作用分别是什么?

如题所述

如果把你的家比作程序里的一个子过程或者自定义函数,而这个外部世界就是整个程序,那么:
全局变量就相当于一个公众人物在电视上发表了讲话,那么这个讲话你们家里的人能听见,其他千千万万个家庭(即其他的函数或过程)的人也能听见,也就是说全局变量是在整个程序中起作用的,程序的任何一个子过程都可以获取这个变量的值,也能改变它的值;
局部变量就好比你在自己家里讲了一段话,这段话只有你家里人能听见,别的家庭里的人是听不见的,也就是说局部变量只能在定义自己的那个子过程或函数里起作用,到了外面或者其他过程里面是无效的,如果其他过程里面也有一个名字相同的局部变量,那么这两个变量是没有半毛钱关系的,互不干扰;
而静态变量就好比你在自己家里说话的同时还录了音,这样下次再要说话的时候,你以及你的家里人就能知道你上次说了什么话,你可以直接使用你说过的话,也可以修改甚至推倒重来。也就是说静态变量可以在过程或函数重复运行的时候保留上次运行的值(而普通的局部变量在函数过程再次执行时会重新变为初始值)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-29
全局变量和静态变量差不多,都是程序刚开始就构造,程序结束析构,局部变量一般在某个函数中申明,执行函数时构造,函数退出析构,new的变量,什么时候new什么时候构造,用完后一般自己析构,想在哪儿在哪儿,如果不主动析构,那么程序结束会自己析构,但这样会有内存泄漏
第2个回答  2017-09-27
全部变量就是在整个工程工都可以调用。比如我在一个标准模块中定义了一个全局变量,那么我无论是在窗体1还是窗体2还是其他地方都可以调用它。而局部变量就不行,比如我在某个窗体定义了一个变量,那么这个变量我就只能在这个窗体中使用。 静态变量,就是当我执行完一个过程后,它的值保存下来了。下次再执行这个过程的时候,使用的值就是新值(即上次过程执行完后产生的值)而动态变量就不会保存那个值。当执行完一个过程后,静态的数值变量会初始化为0,静态的字符串变量会初始化为空字符串说得很明白了不知道你了解不?
相似回答