1. 程式人生 > >c++面試之static與const的作用

c++面試之static與const的作用

一、static的作用

(1)在函式體內,靜態變數具有“記憶”功能,一個被宣告為靜態的變數在這一函式被呼叫的過程中,其值維持不變;

(2)函式體外,模組內,它的作用範圍是有限制的:

  • 靜態變數:該變數可以被模組內所有函式訪問,但不能被模組外其他函式訪問,是一個本地的全域性變數;
  • 靜態函式:作用域與普通函式不同,它的作用域僅限於本檔案中,只能被這一模組的其他函式呼叫,不能被模組外的其他函式呼叫。

static全域性變數與普通的全域性變數的區別:static全域性變數只初始化一次,目的是防止在其他檔案中被引用。

static區域性變數與普通的區域性變數的區別:static只被初始化一次,下一次運算是上一次的結果。

static()函式與普通函式的區別:作用域不同,static()函式只在一個原始檔重要有效,不能被其他原始檔使用

類中的靜態資料成員的特點:

(1)無論類的物件定義多少個,靜態資料成員在類中只有一份複製品;

(2)靜態資料成員儲存在全域性資料區,定義時,需分配空間;

(3)靜態成員變數初始化是在類外;

靜態成員函式不具有this指標,無法訪問屬於類物件的非靜態資料成員,也無法訪問非靜態成員函式,只能呼叫其餘的靜態資料成員函式。

二、const的作用

  • 定義const常量,具有不可變性;
  • 進行型別檢查
  • 方便進行引數調整和修改
  • 保護被修飾的東西,防止被意外更改
  • 為函式過載提供參考
  • 節省空間,避免不必要的記憶體分配

相關推薦

c++面試staticconst作用

一、static的作用(1)在函式體內,靜態變數具有“記憶”功能,一個被宣告為靜態的變數在這一函式被呼叫的過程中,其值維持不變;(2)函式體外,模組內,它的作用範圍是有限制的:靜態變數:該變數可以被模組內所有函式訪問,但不能被模組外其他函式訪問,是一個本地的全域性變數;靜態函

C++StaticConst

iostream http cout 出錯 共享 return share block this 指針 目錄 C++之Static與Const 一、Static定義 1.1、Static變量 1.2、static靜態成員小結 1.2、Static函數 1.3、static

StaticConst作用

程式的區域性變數存在於(堆疊)中,全域性變數存在於(靜態區 )中,動態申請資料存在於( 堆)中。 1.作用於變數:    用static宣告區域性變數-------區域性變數指在程式碼塊{}內部定義的變數,只在程式碼塊內部有效(作用域),其預設的儲存方式是自動變數或說是動態儲存的,即指令執行

C++學習 staticconststatic const

const定義的常量在超出其作用域之後其空間會被釋放,而static定義的靜態常量在函式執行後不會釋放其儲存空間。static表示的是靜態的。類的靜態成員函式、靜態成員變數是和類相關的,而不是和類的具體物件相關的。即使沒有具體物件,也能呼叫類的靜態成員函式和成員變數。一般類的

staticconst作用

static關鍵字的作用:1、在類中的一個成員變數是static時,該變數被所有該類的例項物件所共同擁有,它的改變對該類的例項物件是可見的,也就是說它不屬於某個特定的物件,而是屬於這個類; 2、類中的靜態成員函式不屬於某個物件,而是屬於整個類,不接受this指標,只能訪問s

C++基礎static(靜態)變量

引用 靜態成員 頭文件 this指針 文件中 單元 一份 文件無效 全局 static 表示靜態 作用: 1、在函數體內,靜態變量的值維持不變(記憶功能) 2、是一個本地的全局函數,即只能被本模塊的函數訪問(隱藏功能) static變量: static全局變量和普通

C語言中static關鍵字的作用

編譯 size lac 所有 指針 變量 運行時 http 多個 在C語言中static的作用如下 第一、在修飾變量的時候,static修飾的靜態局部變量只執行一次,而且延長了局部變量的生命周期,直到程序運行結束以後才釋放。 第二、static修飾全局變量的時候,這個全局變

面向對象staticfinal關鍵字

span 基本類型 不可 但是 num [] 進行 面向對象 繼承 final關鍵字和static關鍵字 final關鍵字 final:在翻譯過來的意思就是最後的,最終的,不可改變的意思。在Java中同樣也是這個意思。那到底什麽時候可以

C語言中static關鍵字的作用詳解

在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,一個是a.c,另一個是

C語言指標二維陣列

    指標,其實就是地址,可以指向一塊自己分配大小的空間。陣列即是多塊一位的空間的線性排布。二維陣列,雖然在人文定義的感覺上有了面的理解,但實際在記憶體中也是一維的線性空間。     對於討論二維陣列,首先我們應該先討論一維陣列與

Java面試ArrayListLinkedList的比較

介紹 ArrayList和LinkedList的使用方法很像,因為他們都實現了List介面,List介面抽象了對集合常見的操作,比如增刪查詢。但是他們在底層實現上卻不一樣,所以在使用的時候也有一些點是特別需要注意的。所以我們先簡單看看他們的實現。 資料結構 ArrayLi

C++STLlower_bound()upper_bound()

標頭檔案:#include<algorithm> 如果   int a[100];            for(int i=1;i<=n;i++)              scanf("%d",&a[i]); lower_bound(a+

c#程式設計@的3種作用

對@ 的作用不是很清晰,學習了一下,站在巨人的肩膀上總結如下: 1.忽略轉義字元 例如 string fileName = "D:\\文字檔案\\text.txt"; 使用@後 string fileName = @"D:\文字檔案\text.txt"; 2

前端面試BFCIFC

先說說FC,FC的含義就是Fomatting Context。它是CSS2.1規範中的一個概念。它是頁面中的一塊渲染區域,並且有一套渲染規則,它決定了其子元素將如何定位,以及和其他元素的關係和相互作用。BFC和IFC都是常見的FC。 Block level 的box會參與形

C語言中static的常見作用

有興趣學習c/c++程式設計的小夥伴可以進群:941636044 一起交流哦~ C程式一直由下列部分組成: 1)正文段——CPU執行的機器指令部分;一個程式只有一個副本;只讀,防止程式由於意外事故而修改自身指令; 2)初始化資料段(資料段)——在程式中所有賦了初值的

C++ 關鍵字:staticconst

目錄 1.const 1.1const最重要的一條:隱藏。(作用域限制在單個原始檔) (static函式,static變數均可) 當同時編譯多個檔案時,所有未加static字首的全域性變數和函

C++回顧static成員、static成員函式及類物件大小計算

        C中的static使用比較簡單,都不陌生了,C++中static關鍵字在類中的使用需要注意一些細節。static在類中修飾的是資料成員以及成員函式,分別稱之為靜態資料成員及靜態成員函式。         先來看看static靜態資料成員的目的及使用:    

成為C++高手指標陣列

指標初步 定義一個指標變數:int * a=NULL; int 是指標的型別,其實應該說是指標指向的資料的型別。 程式執行時,資料都是放在記憶體中的,既然在記憶體中,就處於記憶體中的某個位置,這就是資料的地址。指標中儲存的就是這個地址。所以不論什麼型別的指標

c/c++中關鍵字staticconst的用法

一、static 1.在函式體一個被宣告為靜態的變數在這一函式被呼叫的過程中維持其值不變; 2.在模組內,一個被宣告為變數可以被模組內所用,函式訪問,但不能被模組外其他函式訪問,它是一個本地全域性變數; 3.在模組外,一個被宣告為靜態的函式只可被這一模組內的其他函式呼叫,那

成為C++高手巨集列舉

巨集 我們的計算器程式,用1234對應加減乘除,對於人閱讀很產生一點障礙。隔一個月後再看此程式碼可能想不起是0123還是1234了,還得去程式碼中查詢,如果能為代表四則運算的四個數取個有意義的別名就好了,一看是知道對應什麼。沒問題,用巨集啊。以下是我們的計算器