静态(s_)、成员(m_)、全局(g_)变量在c++中有什么含义、作用?

如题所述

静态变量定义后,所有对象的这个变量都分配同一个地址,改变一个对象的这个变量会影响其他对象的一个变量。
成员变量,在每创建一个对象时都会分配一个不同的地址空间,改变其中一个对象的这个变量,并不会影响其他成员的这个变量。成员变量的作用域,也就是有效范围是整个类。
全局变量是说明语句不在任何一个类定义、函数定义或复合语句(程序块)中的变量。全局变量所占用的空间在内存的数据区,在程序运行的整个过程中位置保持不变。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-28
s_ m_ g_ 等前缀仅仅是我们的习惯的命名规则,与语法无关.
是为了方便我们在定义了变量以后使用的时候直观的区分这些变量.

C++不是完全面向对象的开发语言,同C语言一样,它有全局变量,这个变量不属于任何一个类.
这些全局变量,在你的程序任何地方都可以访问到这个变量

静态变量:声明变量的时候加static关键字,
其意义是指定在其中声明一个或多个局部变量的过程终止后,这些已声明的局部变量继续存在并保留其最新值。
void fun()
{ static int i = 0;
i++;
Console::WriteLine( i.ToSting()); // c++ for .net
}

void fun1()
{ fun(); // 这个时候,i == 1;
fun(); // i==2;
fun(); // i==3;
}
static 变量 static int i 只初始化为 0 一次。fun()执行完后,i仍然在存在内存中,每次调用 fun()运行的时候, i仍然保留上次的值

成员变量时一个类的组成部分,它的存在依赖于这个类,它的生命周期由类对象决定.
第2个回答  2014-01-17
全局变量数据存储在全局数据区,程序结束的时候才会释放内存,但唯一的缺点是定义必须在所有函数定义之前,平时写程序尽量避免使用全局变量
成员变量也称局部变量,存储在堆栈数据区
静态变量存储在静态全局数据区,也是在程序结束的时候才会释放内存,利用静态变量可以方便的实现跨文件的数据共享
第3个回答  2011-06-28
静态(s_)、成员(m_)、全局(g_)
含义就是你说的前面的中文

作用: 这是一种命名规则,便于代码阅读和理解
一看就知道这个变量是那一种本回答被提问者采纳
相似回答