C++基礎(chǔ)知識(shí)點(diǎn)

seek a firm footing in the depths.
在深處尋求穩(wěn)固的立足點(diǎn)

入門篇

變量聲明及初始化

short a = 32768;
內(nèi)存分配的存儲(chǔ)空間為2字節(jié)唠叛,取值范圍:-32768~32767或辖,所以會(huì)出現(xiàn)溢出,最后輸出-32768
2個(gè)字節(jié)较店,每個(gè)字節(jié)8位祈秕,2^16=65536唯蝶,所以u(píng)nsigned short取值范圍為0~65535。

指數(shù)

在用指數(shù)形式表示時(shí)详瑞,在e之前的部分稱為尾數(shù)部分(默認(rèn)符號(hào)是正號(hào))掂林,在e之后的稱為指數(shù)部分。例:0.000342的指數(shù)形式為3.42E-4

整型運(yùn)算

小數(shù)賦值給整型變量:小數(shù)將被截?cái)酁檎麛?shù)坝橡。
整數(shù)除法結(jié)果為整數(shù)泻帮,余數(shù)被丟棄。
求模運(yùn)算符%返回整數(shù)除法的余數(shù)计寇。余數(shù)的符號(hào)總是與被除數(shù)相同锣杂。
例:-5%2結(jié)果為-1,5%-2結(jié)果為1番宁。
只要有一個(gè)操作數(shù)為浮點(diǎn)數(shù)變量或浮點(diǎn)數(shù)字面量元莫,就執(zhí)行浮點(diǎn)數(shù)除法;要將整形數(shù)先轉(zhuǎn)換為浮點(diǎn)數(shù),然后再運(yùn)算蝶押。

閏年:
判斷標(biāo)準(zhǔn)是:1柒竞、能整除4且不能整除100 2、能整除400

嚴(yán)格上講"每4年一個(gè)閏年"這說(shuō)法不嚴(yán)謹(jǐn)播聪。應(yīng)該是四年一閏朽基,百年不閏,四百年再閏离陶。

  1. 產(chǎn)生閏年原因:地球繞太陽(yáng)運(yùn)行周期為365天5小時(shí)48分46秒(合365.24219天)即一回歸年(tropical year)稼虎。公歷的平年只有365日,比回歸年短約0.2422 日招刨,所余下的時(shí)間約為四年累計(jì)一天霎俩,故四年于2月加1天,使當(dāng)年的歷年長(zhǎng)度為366日沉眶,這一年就為閏年打却。
  2. 但是,上面算法又有了一個(gè)問(wèn)題谎倔。就是0.2422*4=0.9688柳击,比一天還差0.0322天,每4年差0.0322天不算多片习,但每400年就會(huì)差了約3天捌肴。即是說(shuō)蹬叭,假如每4年一個(gè)閏年,那么每400年就會(huì)有100個(gè)閏年状知,然后會(huì)多算了3天秽五。
  3. 所以,就規(guī)定了每四百年中要減少三個(gè)閏年饥悴。公歷年份是整百數(shù)的坦喘,必須是400的倍數(shù)的才是閏年,不是400的倍數(shù)的,雖然是100的倍數(shù),也是平年西设。

跳轉(zhuǎn)

從函數(shù)返回一個(gè)值:使用return返回調(diào)用函數(shù)語(yǔ)句處
break直接終止循環(huán)起宽,不等待條件為false
continue跳過(guò)余下的語(yǔ)句,開始下一次循環(huán)迭代济榨。

循環(huán)

無(wú)限循環(huán)while(true)
設(shè)置計(jì)數(shù)器變量、檢查計(jì)數(shù)器變量是否滿足條件绿映,并在每次循環(huán)迭代中修改該變量
while循環(huán)擒滑、for循環(huán)(循環(huán)固定的次數(shù))

數(shù)組和內(nèi)存簡(jiǎn)介:

聲明數(shù)組時(shí),編譯器會(huì)根據(jù)數(shù)據(jù)類型和元素?cái)?shù)為數(shù)組預(yù)留合適的內(nèi)存量(內(nèi)存地址連續(xù))叉弦。數(shù)組適合用于存儲(chǔ)項(xiàng)數(shù)已知的數(shù)據(jù)丐一,預(yù)先不知道有多少個(gè)元素,必須使用更高級(jí)的數(shù)據(jù)結(jié)構(gòu)淹冰。

int box[2][3] = {
{1,2,3},
{4,5,6}};

字符數(shù)組

字符串是以空字符結(jié)尾的字符數(shù)組库车,空字符是編碼為'\0'的特殊字符。
字符數(shù)組:char yum[] = "Zombie Eat Brains"; //編譯器自動(dòng)添加空字符
數(shù)組長(zhǎng)度:sizeof(yum)/sizeof(yum[0])

未初始化的字符數(shù)組稱為緩沖區(qū)樱拴。
防止數(shù)組越界(程序bug和安全問(wèn)題)和輸入空格就結(jié)束的問(wèn)題:std::cin.getline(yum,18,' ');
最多讀取18字符(緩沖區(qū)能存儲(chǔ)的字符減一)柠衍,以空格作為結(jié)束標(biāo)志(默認(rèn)為換行符'\n')

注意:

惡意程序員利用最多的漏洞是:寫入數(shù)據(jù)時(shí)超越緩沖區(qū)邊界,利用這種錯(cuò)誤來(lái)執(zhí)行新代碼晶乔,新代碼可執(zhí)行任意操作珍坊,如:修改刪除文件,將系統(tǒng)特權(quán)授予不受信任的用戶及復(fù)制病毒正罢。

任何沒(méi)有賦值的數(shù)組元素阵漏,其值為相應(yīng)內(nèi)存中原有的值,使用未賦值的元素的結(jié)果是無(wú)法預(yù)測(cè)的翻具。
合并數(shù)組:指針履怯,字符串使用內(nèi)置函數(shù)(strcat)

問(wèn)題:C++類中數(shù)據(jù)成員為類類型時(shí),定義為對(duì)象還是定義為指針裆泳?

C++中叹洲,ClassTest objTest;就已經(jīng)構(gòu)造了對(duì)象,分配了空間工禾;而在C#,Java中ClassTest objTest;只是聲明疹味,并沒(méi)有分配空間仅叫。
在C++中,ClassTest objTest;是在棧上分配空間糙捺,ClassTest *pobjTest = new ClassTest;是在堆上分配空間诫咱。
棧分配的空間自動(dòng)回收,堆分配的空間需要手動(dòng)回收洪灯。

在一個(gè)類中定義指向另外一個(gè)類的指針:
class A {
public:
A();
~A();
B *pt; //直接定義就好坎缭,但是記得要包含類B 的頭文件
}
pt = new B; //分配動(dòng)態(tài)內(nèi)存
用完別忘記delete掉,可以在A的析構(gòu)函數(shù)中做這個(gè)事情

類的對(duì)象可以作為另一個(gè)類的數(shù)據(jù)成員, 在定義類時(shí), 與普通的數(shù)據(jù)成員一樣, 在聲明時(shí)無(wú)法進(jìn)行初始化,(構(gòu)造函數(shù)作用签钩,避免混亂)
情況1:
當(dāng)B類中的數(shù)據(jù)成員全部為 public 時(shí), 可以在A類的構(gòu)造函數(shù)內(nèi)完成初始化掏呼。
由于B類中的數(shù)據(jù)成員全為 public 的, 所以可以通過(guò) 對(duì)象名.數(shù)據(jù)成員名 的方式直接進(jìn)行訪問(wèn)。
情況2:
要在A類中對(duì)B的 private 數(shù)據(jù)成員進(jìn)行正常的初始化同樣需要借助初始化表達(dá)式來(lái)完成
Line(int x1, int y1, int x2, int y2):M(10, 20), N(100, 200) { ; }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铅檩,一起剝皮案震驚了整個(gè)濱河市憎夷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昧旨,老刑警劉巖拾给,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兔沃,居然都是意外死亡蒋得,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門乒疏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)额衙,“玉大人,你說(shuō)我怎么就攤上這事怕吴∏喜啵” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵转绷,是天一觀的道長(zhǎng)疏之。 經(jīng)常有香客問(wèn)我,道長(zhǎng)暇咆,這世上最難降的妖魔是什么锋爪? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮爸业,結(jié)果婚禮上其骄,老公的妹妹穿的比我還像新娘。我一直安慰自己扯旷,他們只是感情好拯爽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钧忽,像睡著了一般毯炮。 火紅的嫁衣襯著肌膚如雪逼肯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天桃煎,我揣著相機(jī)與錄音篮幢,去河邊找鬼。 笑死为迈,一個(gè)胖子當(dāng)著我的面吹牛三椿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葫辐,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搜锰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了耿战?” 一聲冷哼從身側(cè)響起蛋叼,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剂陡,沒(méi)想到半個(gè)月后狈涮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹏倘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了顽爹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纤泵。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖镜粤,靈堂內(nèi)的尸體忽然破棺而出捏题,到底是詐尸還是另有隱情,我是刑警寧澤肉渴,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布公荧,位于F島的核電站,受9級(jí)特大地震影響同规,放射性物質(zhì)發(fā)生泄漏循狰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一券勺、第九天 我趴在偏房一處隱蔽的房頂上張望绪钥。 院中可真熱鬧,春花似錦关炼、人聲如沸程腹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寸潦。三九已至色鸳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間见转,已是汗流浹背命雀。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留池户,地道東北人咏雌。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像校焦,于是被迫代替她去往敵國(guó)和親赊抖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容