1樓:匿名使用者
靜態變數定義後,所有物件的這個變數都分配同乙個位址,改變乙個物件的這個變數會影響其他物件的乙個變數。
成員變數,在每建立乙個物件時都會分配乙個不同的位址空間,改變其中乙個物件的這個變數,並不會影響其他成員的這個變數。成員變數的作用域,也就是有效範圍是整個類。
全域性變數是說明語句不在任何乙個類定義、函式定義或複合語句(程式塊)中的變數。全域性變數所佔用的空間在記憶體的資料區,在程式執行的整個過程中位置保持不變。
2樓:網友
s_ m_ g_ 等字首僅僅是我們的習慣的命名規則,與語法無關。
是為了方便我們在定義了變數以後使用的時候直觀的區分這些變數。
c++不是完全物件導向的開發語言,同c語言一樣,它有全域性變數,這個變數不屬於任何乙個類。
這些全域性變數,在你的程式任何地方都可以訪問到這個變數。
靜態變數:宣告變數的時候加static關鍵字,其意義是指定在其中宣告乙個或多個區域性變數的過程終止後,這些已宣告的區域性變數繼續存在並保留其最新值。
void fun()
static int i = 0;
i++;console::writeline( for .net
void fun1()
fun();這個時候,i ==1;
fun();i==2;
fun();i==3;
static 變數 static int i 只初始化為 0 一次。fun()執行完後,i仍然在存在記憶體中,每次呼叫 fun()執行的時候, i仍然保留上次的值。
成員變數時乙個類的組成部分,它的存在依賴於這個類,它的生命週期由類物件決定。
3樓:匿名使用者
全域性變數資料儲存在全域性資料區,程式結束的時候才會釋放記憶體,但唯一的缺點是定義必須在所有函式定義之前,平時寫程式儘量避免使用全域性變數。
成員變數也稱區域性變數,儲存在堆疊資料區。
靜態變數儲存在靜態全域性資料區,也是在程式結束的時候才會釋放記憶體,利用靜態變數可以方便的實現跨檔案的資料共享。
4樓:網友
靜態(s_)、成員(m_)、全域性(g_)
含義就是你說的前面的中文。
一看就知道這個變數是那一種。
5樓:匿名使用者
靜態變數之所以是因為靜態,是因為他在整個程式生命週期的位址靜止不變。也就是說在整個程式裡面只儲存有乙份拷貝。static關鍵字允許它在不同的函式呼叫間保持它的值。
如果乙個靜態變數被訪問後值改變,它就會保持新的值。如果這變數再次被訪問,它將會維持最新的值。
成員變數不是例項物件的一部分,它是所有物件共有的,它必須在類的內部申明,在類的外部定義。
1,使用全域性變數會佔用更多的記憶體(因為其生命期長),不過在計算機配置很高的今天,這個不成為什麼問題,除非使用的是巨大物件的全域性變數,能避免就一定要避免。
2,使用全域性變數神讓程式執行時速度更快一些(因為記憶體不需要再分配),同樣現在也快不了多少。
3,對於區域性敗瞎信察輪變數的名字空間汙染,這個在不使用太多變數時是可以避免的。
總之,全域性變數可以使用,但是全域性變數使用時應注意的是儘可能使期名字易於理解,而且不能太短,避免名字空間的汙染;避免使用巨大物件的全域性變數。
visual c++ 6.0 定義全域性靜態變數
6樓:網友
寫在用它的檔案的最前面吧。
static int a;
如果需要賦初始值則。
static int a = 123;
如果不初始化。
程式啟動會預設將之清0
7樓:網友
#include
using namespace std;
int a=3,b=5;
void main()
int a=8,b=10;
其中int a=3,與b=5就是整形全域性變數,而下面的int a=8,b=10就是區域性變數。
在函式外面定義的變數就是全域性變數,對多個函式有效。
8樓:十水雨木
int t; //外部變數。
void datachange(void)
外部變數全部都儲存在靜態儲存區(單元)的。
9樓:
全變數在函式外面定義,且全域性變數都是靜態的。
static int a; //這個表示a的作用域僅限於本檔案。
int a; //這個表示a的作用域可以跨檔案。
10樓:盜蹠神
在主函式之前定義就可義啊,如果想讓它記錄資料比如總分等等的話就加static
visual c++ 各種字母的標識含義
11樓:鄔佳祺
全域性變源。
量baig_
常量 c_c++類成員變數du
m_ 靜態變數。
s_ 型別zhi
部分指標dao
p 函式。fn 無效。
v 控制代碼。h 長整型。
l 布林。b 浮點型(有時也指檔案)
f 雙字。dw 字串。
sz 短整型。
n 雙精度浮點。
d 計數。c(通常用cnt)
字元 ch(通常用c)
整型 i(通常用n)
位元組 by字 w實型 r
無符號u 描述部分。
最大 max
最小 min
初始化init
臨時變數。t(或temp)
源物件src
目的物件。dest
12樓:匿名使用者
整形 int 前面加ifloat f物件 m_pbool 前面+b我基本就這樣子,明瞭!
請問c++語言裡靜態變數和全域性變數有什麼區別?謝謝
13樓:網友
全域性變數宣告之前加上static,就是靜態全域性變數。全域性變數和靜態全域性變數都是靜態儲存的;在儲存上無區別。區別在於他們的作用域;全域性變數的作用域是整個源程式,當源程式有多個原始檔組成時,全域性變數在各個源程式檔案都是有效的;而靜態全域性變數怎被限制了作用域,只在定義該變數的原始檔內有用在同一程式的其他原始檔不能使用!
還有靜態全域性變數只初始化一次,防止在其他原始檔呼叫!而全域性變數可以再其他原始檔初始化!!
這樣說樓主明白了嗎?
14樓:網友
建議去看看這篇文章。
看完就可以明白了。
c++裡, static 是什麼意思?
15樓:網友
靜態變數。
在程式沒有關閉時候。
每用到他會累計結果(如果是int的話)
c++中,全域性變數,區域性變數,靜態變數的作用分別是什麼?
16樓:網海1書生
如果把你的家比作程式裡的乙個子過程或者自定義函式,而這個外部世界就是整個程式,那麼:
全域性變數就相當於乙個公眾人物在電視上發表了講話,那麼這個講話你們家裡的人能聽見,其他千千萬萬個家庭(即其他的函式或過程)的人也能聽見,也就是說全域性變數是在整個程式中起作用的,程式的任何乙個子過程都可以獲取這個變數的值,也能改變它的值;
區域性變數就好比你在自己家裡講了一段話,這段話只有你家裡人能聽見,別的家庭裡的人是聽不見的,也就是說區域性變數只能在定義自己的那個子過程或函式里起作用,到了外面或者其他過程裡面是無效的,如果其他過程裡面也有乙個名字相同的區域性變數,那麼這兩個變數是沒有半毛錢關係的,互不干擾;
而靜態變數就好比你在自己家裡說話的同時還錄了音,這樣下次再要說話的時候,你以及你的家裡人就能知道你上次說了什麼話,你可以直接使用你說過的話,也可以修改甚至推倒重來。也就是說靜態變數可以在過程或函式重複執行的時候保留上次執行的值(而普通的區域性變數在函式過程再次執行時會重新變為初始值)。
17樓:盤高芬御娜
全域性變數和靜態變數差不多,都是程式剛開始就構造,程式結束析構,區域性變數一般在某個函式中申明,執行函式時構造,函式退出析構,new的變數,什麼時候new什麼時候構造,用完後一般自己析構,想在哪兒在哪兒,如果不主動析構,那麼程式結束會自己析構,但這樣會有記憶體洩漏。
18樓:網友
全部變數就是在整個工程工都可以呼叫。比如我在乙個標準模組中定義了乙個全域性變數,那麼我無論是在窗體1還是窗體2還是其他地方都可以呼叫它。而區域性變數就不行,比如我在某個窗體定義了乙個變數,那麼這個變數我就只能在這個窗體中使用。
靜態變數,就是當我執行完乙個過程後,它的值儲存下來了。下次再執行這個過程的時候,使用的值就是新值(即上次過程執行完後產生的值)而動態變數就不會儲存那個值。當執行完乙個過程後,靜態的數值變數會初始化為0,靜態的字串變數會初始化為空字串說得很明白了不知道你瞭解不?
在c++中,什麼是靜態成員?
19樓:
你如果不定義的話,就沒有靜態成員,class test
20樓:網友
靜態變數具有區域性變數的功能 和 全域性變數的生存期,在編譯時就分配單元。
s號尺碼與m號尺碼差多少,S號尺碼與M號尺碼差多少
s碼165 88a 肩寬44cm,胸圍100cm,衣長66cm,袖長22.5cm,身高160cm 165cm,體重45kg 55kg的人穿著。m碼170 92a 肩寬45cm,胸圍108cm,衣長68cm,袖長23cm,身高165cm 170cm,體重50kg 65kg的人穿著。總結 s碼小於m碼,...
美國襯衫穿s還是m
建議你買s號的。按照您的身高體重,我可以斷定,您屬於瘦高體型。每個國家的成衣尺碼,都是按照這個國家的國民平均體型計算的。單從西服的角度說,美國的西服是標準的箱式版型。說穿了,就是很肥很大。同樣是衣服,可以推算襯衫的概念。如果還是不放心,可以在網上查詢一下 美國襯衫尺碼 之類的,中文找不到,把 美國襯...
額M4A1 A與M1A1 S的區別
ma a 黑色外形 上彈速度中 射速較快 威力較大。ma s 迷彩外形 上彈速度快 射速較快 威力較大。ma a cf點 人民幣 天。ma s cf點 人民幣 天。個人建議ma a 既省錢又不比ma s差多少 ma a 配 步槍彈夾 狠瘋了。ma與ma和ma的區別?ma 火力強化版的ma在年引入。裝...