一些碎知識點

1. 幾種生成空指針的方法:

int *p1=nullptr;//等價于int *p1=0;C++11引入的砂碉,建議使用
int *p2=0;//直接將p2初始化為字面常量0
//需要首先#include cstdlib
int *p3=NULL;//等價于int *p3=0;

2. main函數(shù)執(zhí)行以前及以后,分別還會執(zhí)行什么代碼特碳?

(1). 一些全局變量诚亚、對象和靜態(tài)變量、對象的空間分配和賦初值在main之前午乓,main之后還要執(zhí)行一些諸如釋放空間站宗、釋放資源使用權等操作。
(2). 全局對象的構造函數(shù)在main之前執(zhí)行益愈,析構函數(shù)在main之后執(zhí)行梢灭。
(3). main函數(shù)之后會執(zhí)行atexit注冊的函數(shù)。

3. C\C++程序編譯的內(nèi)存分配情況

一個C/C++程序編譯時內(nèi)存分為5大存儲區(qū):堆區(qū)蒸其、棧區(qū)敏释、全局區(qū)、程序代碼區(qū)摸袁、文字常量區(qū)钥顽。
(1). 程序代碼區(qū)。代碼要執(zhí)行靠汁,肯定要將代碼的二進制文件加載進內(nèi)存蜂大。
(2). 字符串常量區(qū)。

char *s1="hello";
char *s2="hello";

這樣定義字符串時蝶怔,s1是等于s2的县爬,意思是兩者指向同一字符串,該字符串在字符串常量區(qū)添谊。
C/C++內(nèi)存分配方式有3種
(1). 從靜態(tài)存儲區(qū)分配:
內(nèi)存在程序編譯時就已經(jīng)分配好财喳,這塊內(nèi)存在程序的整個運行期間都存在。速度快斩狱、不容易出錯耳高,因為有系統(tǒng)會善后。例如全局變量所踊,static變量等泌枪。
(2). 在棧上分配:
在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都在棧上創(chuàng)建秕岛,函數(shù)執(zhí)行結束時這些存儲單元自動被釋放碌燕。棧內(nèi)存分配運算內(nèi)置于處理器的指令集中误证,效率很高,但是分配的內(nèi)存容量有限修壕。
(3). 從堆上分配:
即動態(tài)內(nèi)存分配愈捅。程序在運行的時候用malloc或new申請任意大小的內(nèi)存,程序員自己負責在何時用free或delete釋放內(nèi)存慈鸠。動態(tài)內(nèi)存的生存期由程序員決定蓝谨,使用非常靈活。如果在堆上分配了空間青团,就有責任回收它譬巫,否則運行的程序會出現(xiàn)內(nèi)存泄漏,另外頻繁地分配和釋放不同大小的堆空間將會產(chǎn)生堆內(nèi)碎塊督笆。

4. #include<>與“ ”

在C程序中包含文件有以下兩種方法:

  • 用符號“<”和“>”將要包含的文件的文件名括起來芦昔。這種方法指示預處理程序到預定義的缺省路徑下尋找文件。預定義的缺省路徑通常是在INCLUDE環(huán)境變量中指定的娃肿,請看下例:
    INCLUDE=C:\COMPILER\INCLUDE烟零;S:\SOURCE\HEADERS;
    對于上述INCLUDE環(huán)境變量咸作,如果用#include<file>語句包含文件锨阿,編譯程序?qū)⑹紫鹊紺:\COMPILER\INCLUDE目錄下尋找文件;如果未找到记罚,則到S:\SOURCE\HEADERS目錄下繼續(xù)尋找墅诡;如果還未找到,則到當前目錄下繼續(xù)尋找桐智。

  • 用雙引號將要包含的文件的文件名括起來末早。這種方法指示預處理程序先到當前目錄下尋找文件,再到預定義的缺省路徑下尋找文件说庭。
    對于上例中的INCLUDE環(huán)境變量然磷,如果用#include“file”語句包含文件,編譯程序?qū)⑹紫鹊疆斍澳夸浵聦ふ椅募浚蝗绻凑业阶怂眩瑒t到C:\COMPILER\INCLUDE目錄下繼續(xù)尋找;如果還未找到捆憎,則到S:\SOURCE\HEADERS目錄下繼續(xù)尋找舅柜。
    #include<file>語句一般用來包含標準頭文件(例如stdio.h或stdlib.h),因為這些頭文件極少被修改躲惰,并且它們總是存放在編譯程序的標準包含文件目錄下致份。#include“file”語句一般用來包含非標準頭文件,因為這些頭文件一般存放在當前目錄下础拨,你可以經(jīng)常修改它們氮块,并且要求編譯程序總是使用這些頭文件的最新版本绍载。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市滔蝉,隨后出現(xiàn)的幾起案子击儡,更是在濱河造成了極大的恐慌,老刑警劉巖锰提,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曙痘,死亡現(xiàn)場離奇詭異芳悲,居然都是意外死亡立肘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門名扛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谅年,“玉大人,你說我怎么就攤上這事肮韧∪邗澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵弄企,是天一觀的道長超燃。 經(jīng)常有香客問我,道長拘领,這世上最難降的妖魔是什么意乓? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮约素,結果婚禮上届良,老公的妹妹穿的比我還像新娘。我一直安慰自己圣猎,他們只是感情好士葫,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著送悔,像睡著了一般慢显。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欠啤,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天鳍怨,我揣著相機與錄音,去河邊找鬼跪妥。 笑死鞋喇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的眉撵。 我是一名探鬼主播侦香,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼落塑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了罐韩?” 一聲冷哼從身側響起憾赁,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎散吵,沒想到半個月后龙考,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡矾睦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年晦款,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枚冗。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡缓溅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赁温,到底是詐尸還是另有隱情坛怪,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布股囊,位于F島的核電站袜匿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稚疹。R本人自食惡果不足惜居灯,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贫堰。 院中可真熱鬧穆壕,春花似錦、人聲如沸其屏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偎行。三九已至川背,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛤袒,已是汗流浹背熄云。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妙真,地道東北人缴允。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像珍德,于是被迫代替她去往敵國和親练般。 傳聞我的和親對象是個殘疾皇子矗漾,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

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