八進(jìn)制 前綴0 京腥,020在計(jì)算機(jī)中是表示16的整數(shù)
浮點(diǎn)型1.0占8個(gè)字節(jié)
字符串占的字節(jié)數(shù) = 字符串長度+1
“程序設(shè)計(jì)”長度為8(4個(gè)漢字占8個(gè)字節(jié))碉纳,占9個(gè)字節(jié)
^ 按位異或,不同為1相同為0
同名變量,局部變量的優(yōu)先級要高于全局變量,如果想使用全局變量而不是局部變量,應(yīng)在變量名之前加上作用域符號"::"
面向?qū)ο螅翰捎脤ο髞砻枋鰞?nèi)部屬性和操作方法嫡意,將數(shù)據(jù)和函數(shù)當(dāng)做一個(gè)整體
繼承:在...的基礎(chǔ)上,又有什么樣的新特征
destructor往往用于釋放constructor中動態(tài)申請的內(nèi)存空間
異或^举瑰,兩個(gè)操作數(shù)不同為1,相同為0,將int型變量n的低8位取反,其余位保持不變 n^=0xFF
對于有符號數(shù),如long,char,int,short,char型變量 右移時(shí)符號位(最高位)將一起移動,正數(shù)的符號位為0,負(fù)數(shù)的符號位為1蔬螟,如果原符號位為0,右移時(shí)高位就補(bǔ)充0,原符號位為1右移時(shí)高位就補(bǔ)充1
實(shí)際上,右移n位,就相當(dāng)于左操作數(shù)除以2的n次方,并且結(jié)果往小的取整(這是規(guī)律,不是規(guī)定)
轉(zhuǎn)義字符
\n 換行符 \r 表示回車 \b 退格 \t制表符 ' 單引號 ''雙引號 \0結(jié)束符 \f 分頁符
C++程序運(yùn)行時(shí)使用的內(nèi)存區(qū)域
堆區(qū) 存放動態(tài)分配的數(shù)據(jù)
棧區(qū) 存放局部數(shù)據(jù),局部變量
全局?jǐn)?shù)據(jù)區(qū) 存放全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)此迅,全局變量
程序代碼區(qū) 存放程序各個(gè)函數(shù)的代碼
存儲類型 auto,register,static,extern 一個(gè)變量完整的形式<存儲類型> <數(shù)據(jù)類型> <變量名>
auto:在定義塊的開始分配空間,執(zhí)行結(jié)束時(shí)釋放空間
register:盡可能存放在CPU的寄存器中,提高程序的效率旧巾,僅局部變量和形式參數(shù)耸序,才可作為寄存器變量
extern:如果在一個(gè)源文件a.cpp中定義的全局變量,想在b.cpp中使用,則應(yīng)該在b.cpp中加上extern進(jìn)行聲明,表示該全局變量不在b.cpp中定義的
a.cpp
int Dimension = 100;
b.cpp
extern int Dimension;
如果在全局變量前加上static,則成為靜態(tài)成員變量,只能在本文件中使用
函數(shù)的自動變量(auto)是在函數(shù)執(zhí)行中才分配,static變量是在編譯時(shí)才分配的內(nèi)存
結(jié)構(gòu)體
結(jié)構(gòu)體類型 *指針變量名鲁猩;
(*指針變量).變量名
指針變量->變量名
結(jié)構(gòu)體只有數(shù)據(jù)成員,沒有函數(shù)成員
內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)函數(shù):在類體內(nèi)直接定義函數(shù)成員,該成員函數(shù)成為內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)成員函數(shù) : inline + 成員函數(shù)坎怪,整個(gè)函數(shù)體出現(xiàn)在類定義的內(nèi)部
//內(nèi)聯(lián)函數(shù)形如: class clock{ void show_time(){cout<<Hour:<<":"minute<<endl;} } inline int square(int x){ return x*x; } //編譯時(shí)遇到內(nèi)聯(lián)函數(shù)調(diào)用square(i),就用函數(shù)體中的代碼代替square(i) class clock{ void show_time(){cout<<Hour:<<":"minute<<endl;} }
String的相關(guān)操作
char *strcat(char *destin,char * source) //鏈接兩個(gè)字符
char *strcpy(char * destin,char *source) //將字符串source拷貝到destin中
String text =“heavy rains are pushing water”;
k = text.find("heavy"); //查找heavy的下標(biāo)
text.earse(k,sizeof("heavy")-1); //刪除heavy
text.insert(k,"strong");
String S1("Hello");//一個(gè)參數(shù)的構(gòu)造函數(shù)
String month ="march"; //字串賦值
String S2(8,"X");//兩個(gè)參數(shù)的構(gòu)造函數(shù)
String類不提供以字符和整數(shù)為參數(shù)的構(gòu)造函數(shù)
String error ='C';//錯(cuò)誤廓握,不存在以字符為參數(shù)的構(gòu)造函數(shù)
可以將字符賦值給String
String s;
s ='n';
逐個(gè)訪問String類對象的字符搅窿,String S1("Hello");
for(int i=0;i<s1.length;i++)
cout<<s1.at(i)<<endl;
成員函數(shù)at會做范圍檢查,如果超出范圍會拋出out_of_range異常,而下標(biāo)運(yùn)算符不會做檢查
//用+運(yùn)算符連接字符串
String S1("GOOD"),S2("MORNING");
S1+=S2;