Static和Const的區別

static

  1. static局部變量 將一個變量聲明爲函數的局部變量,那麼這個局部變量在函數執行完成以後不會被釋放,而是繼續保留在內存中
  2. static 全局變量 表示一個變量在當前文件的全局內可訪問
  3. static 函數 表示一個函數只能在當前文件中被訪問
  4. static 類成員變量 表示這個成員爲全類所共有
  5. static 類成員函數 表示這個函數爲全類所共有,並且只能訪問靜態成員變量

const

  1. const 常量:定義時就初始化,之後不能更改。
  2. const 形參:func(const int a){};該形參在函數裏不能改變
  3. const修飾類成員函數:該函數對成員變量只能進行只讀操做

 

static關鍵字的做用:

(1)函數體內static變量的做用範圍爲該函數體,該變量的內存只被分配一次,所以其值在下次調用時仍維持上次的值; html

(2)在模塊內的static全局變量和函數能夠被模塊內的函數訪問,但不能被模塊外其它函數訪問; 函數

(3)在類中的static成員變量屬於整個類所擁有,對類的全部對象只有一份拷貝; this

(4)在類中的static成員函數屬於整個類所擁有,這個函數不接收this指針,於是只能訪問類的static成員變量。指針

 

const關鍵字的做用:

(1)阻止一個變量被改變 htm

(2)聲明常量指針和指針常量 對象

(3)const修飾形參,代表它是一個輸入參數,在函數內部不能改變其值; blog

(4)對於類的成員函數,若指定其爲const類型,則代表其是一個常函數,不能修改類的成員變量; 內存

(5)對於類的成員函數,有時候必須指定其返回值爲const類型,以使得其返回值不爲」左值」。變量

 

static全局變量和普通的全局變量的區別:

static全局變量只初始化一次,防止在其餘單元文件中被引用。引用

 

static局部變量和普通局部變量區別:

static局部變量只初始化一次;下一次根據上一次結果值。

 

static函數與普通函數有什麼區別:

static函數在內存中只有一份,普通函數在每一個被調用中維持一份拷貝。

 

轉載來源:https://www.cnblogs.com/Jinfeng1213/p/8597446.html

相關文章
相關標籤/搜索