儲存在全域性資料區
靜態變數限制在模組內/作用域內
靜態變數限制在本檔案中,不可被模組外的其他函式呼叫
靜態全域性變數:只初始化一次,防止被其他檔案單元被引用
靜態區域性變數:只初始化一次
靜態成員變數:無論有多少個類的物件,靜態資料成員只有乙個例項,由所有物件共享訪問,在類外初始化,不與全域性變數名字衝突
靜態成員函式:無法訪問類物件的非靜態資料成員,也無法訪問非靜態成員函式,只能呼叫其餘的靜態成員變數/函式,不存在this指標
不可在標頭檔案中定義靜態變數,非靜態變數也不可行吧
靜態變數、物件都是在程式結束時終結
const變數特性:值不可變,型別檢查,保護不可變的變數,函式過載,節省空間(const變數在執行過程中只有乙份複製品(記憶體位址唯一),參考指標指向常字串,指標只有乙份複製品),編譯器不為const變數分配空間(儲存在符號表內)
函式的返回值不可變,const修飾類的成員函式
無法將常引用變數賦值給同型別的非常量變數
switch(c) c不能是float型別
型別修飾符(typespecifier),一般用於修飾多執行緒間被多個任務共享的變數和並行裝置硬體暫存器
優化器在用到這個變數時必須每次小心的重新讀取這個變數的值(frommemory),而不是實用儲存在暫存器裡的備份
巨集,定義在中,捕獲非法情況,如果表示式返回false,程式報告錯誤,終止執行。只在debug版本中有效
assert(n!=0);
k=10/n;
assert()類似,可在release版本應用,在除錯結束後,插入#definendebug來禁用assert
列舉變數第乙個值預設為0,其他的預設為前乙個數+1
帶參:int main(intargc,char* argv)
argc表示程式從命令列接受的引數個數
argv 用來儲存引數的字串陣列
在main()執行之前,編譯器呼叫_main()函式進行全域性物件構造和初始化
*p++和(*p)++
++a和a++ //暫存器和記憶體的區別,暫存器所村變數的值可看成變數的臨時值,當前可用的值
1)引用作為函式引數
2)引用作為函式返回值
優點:不會產生被返回值的副本
不能返回區域性變數的引用和函式內部new分配的記憶體的引用,可以返回類成員的常引用
3)常引用
extern 普通型別(基本資料類、結構、類)
export 實現模板函式的外部呼叫
explicit 宣告乙個建構函式不能作為型別轉換操作符被隱式地使用 string s1=「hello」發生隱式轉換,等價於strings1=string("hello");呼叫string(const char* p),生成乙個臨時變數string,再賦給s1.通過explict宣告,阻止這個隱式呼叫過程
finally覆蓋try模組的return語句,並在return返回值之前執行
野指標:指向不可用記憶體的指標
任何指標變數在被建立時,不會自動成為null指標
ascii碼字元與整數做算術運算,就會轉換為整數 0-9:48-57 a-z:65-90 a-z:97-122 int n=c-'0';或int n=c-48;
整數轉換為字串:char c=n+'0';
字串陣列,兩個字串陣列的值相同,是兩份常量字串的拷貝,分別儲存記憶體不同位址
字串指標指向同乙個常量字串,那麼它們的值相同,指向這個常量字串在記憶體中的位址
c#中,改變string的值會產生新例項,stringbuilder能容納修改後的值
string s1,s2,s3;
cin>>s1>>s2; //自動忽略開頭的空白(空白符,換行符,製表符),遇空格就結束乙個字串的輸入
getline(cin,s3); //不忽略空白,遇換行符結束
#include /*
包含*/
標頭檔案:#include
isalpha() //判斷是否為大小寫字母
isdigit() //判斷是否為數字
isalnum() //判斷是否為字母或數字,相當於isalpha()|| isdigit() ,為巨集定義
new 自動計算需要分配的記憶體空間返回具體型別的指標型別安全分配+構造+運算子
malloc 需要手動計算返回void *不檢查型別安全分配函式、需要stdlib.h支援
具體解析:
只能用初始化列表而不能用賦值進行初始化
賦值是刪除原值,賦予新值,初始化列表開闢空間和初始化同時完成
const、reference成員變數,基類的建構函式,成員型別是沒有預設建構函式的類
string& string(conststring& rhs)
if(this==&rhs)
return *this;
delete m_data;
m_data=newchar[strlen(rhs.m_data)+1];
strcpy(m_data,rhs.m_data);
return *this;
在派生類中重新定義的的函式應與基類定義的虛函式具有相同的形參個數和形參型別(相同的引數順序、相同的返回值型別?)
內聯函式、全域性函式以及類的靜態成員函式和建構函式不能定義為虛函式,將析構函式定義為虛函式,析構時呼叫的是子類的析構函式,解除子類特有的一些變數,不然只是呼叫基類的析構函式
編譯器為類生成虛函式表
虛函式指標指向本類的虛函式表的記憶體位址
c++的初始化列表的賦值順序,是與
c++類裡面成員變數的宣告順序相關,與初始化列表裡的順序無關
只能用初始化列表進行初始化的類中成員:
const
、reference
、沒有default
建構函式的物件,而不能用賦值
下面四種情況必須使用初始化列表來初始化
class
的成員: 1.
當初始化乙個
reference member時;
2.當初始化乙個
const member時;
3.當呼叫乙個
base class
的constructor
,而它擁有一組引數(其實就是自定義的建構函式)時; 4.
當呼叫乙個
member class
的constructor
,而它擁有一組引數時。
不過,初始化的順序是
class members
宣告次序決定的,不是由初始化列表決定的。
返回new的引用,引用作為乙個臨時變數出現,沒有賦予乙個實際的變數,所以無法釋放new申請的記憶體,造成記憶體洩漏
windows下,棧為2mb,堆空間一般為2gb
快取區溢位
向有限緩衝區寫入乙個超過其長度的字串會導致:1.程式執行失敗、系統奔潰2.利用漏洞執行任意指令,甚至取得root許可權,危害系統安全,
sizeof關鍵字
資料對齊
結構體裡每個資料成員的邊界對齊和整個結構體的邊界對齊
雜湊表。筆試面試知識整理
雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。雜湊表的實現主要需要解決兩個問題,雜湊函式和衝突解決。雜湊函式也叫雜湊函式,它對不同的輸出值得到乙個固定長度的訊息摘要。理...
面試筆試 http知識點
1 常用的http方法有哪些?get 用於請求訪問已經被uri 統一資源識別符號 識別的資源,可以通過url傳參給伺服器 post 用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。put 傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。head 獲得報文首部,與g...
中興筆試 面試
中興的校園招聘還是挺早的,九月底就完成全部面試,其他的一些大公司也只是剛開始舉行宣講會或者筆試。對中興以前也不怎麼了解,聽說待遇不怎麼好,事實也確實如此,只是懷著廣撒網積累經驗的目的報了網申。九月十七號接到通知九月十八號在北科筆試。中興的筆試個人感覺考得挺難得,涉及面挺廣,硬體軟體都有,資料結構 網...