有關(guān)C++語(yǔ)言基礎(chǔ)的問(wèn)題

c/c++程序的編譯過(guò)程(GCC的編譯流程)

主要分為四個(gè)階段:預(yù)處理愿险,編譯階段嫉鲸,匯編階段,鏈接階段

  • 當(dāng)我們寫(xiě)好一個(gè)C語(yǔ)言程序的時(shí)候棵磷,其文件的后綴為.c蛾狗,稱(chēng)它為源程序

  • 預(yù)處理:編寫(xiě)好的源程序通過(guò)預(yù)處理器仪媒,預(yù)處理器會(huì)識(shí)別字符#開(kāi)頭的命令沉桌,告訴預(yù)處理器進(jìn)行讀取字符#后對(duì)應(yīng)的系統(tǒng)頭文件內(nèi)容,并將這些讀取的內(nèi)容插入到程序文本中(宏替換),得到另一個(gè)比之前大的C程序留凭,此時(shí)修改后的文件的后綴名通常為.i佃扼。

  • 編譯階段:編譯器(ccl)會(huì)將預(yù)處理過(guò)的C程序進(jìn)行編譯,得到一個(gè)匯編語(yǔ)言程序(此時(shí)的文件還是文本文件蔼夜,文件后綴為.s)松嘶,使我們寫(xiě)的源程序變成更加接近低級(jí)機(jī)器語(yǔ)言指令。

  • 匯編階段:匯編器(as)的工作就是將編譯階段得到的匯編語(yǔ)言程序翻譯成機(jī)器語(yǔ)言指令挎扰,并把這些指令打包成可重定位目標(biāo)程序的格式翠订,打包完畢后將其保存在目標(biāo)文件中,該文件的后綴為.o遵倦,此時(shí)的文件是二進(jìn)制文件尽超。

  • 鏈接階段:匯編階段得到的目標(biāo)文件還無(wú)法直接運(yùn)行,因?yàn)樵闯绦蛑杏锌赡苡卸鄠€(gè)文件梧躺,而匯編階段做的僅僅只是將每個(gè)文件進(jìn)行處理似谁,所以鏈接器(ld)就是將各個(gè)目標(biāo)文件進(jìn)行合并處理,使他們變成一個(gè)可以被加載到系統(tǒng)內(nèi)存中執(zhí)行的統(tǒng)一整體掠哥,這時(shí)候稱(chēng)它為可執(zhí)行文件巩踏。

強(qiáng)類(lèi)型語(yǔ)言 VS 弱類(lèi)型語(yǔ)言

  • 強(qiáng)類(lèi)型語(yǔ)言是一種強(qiáng)制類(lèi)型定義的語(yǔ)言,一旦某一個(gè)變量被定義類(lèi)型续搀,如果不經(jīng)過(guò)強(qiáng)制轉(zhuǎn)換塞琼,則它永遠(yuǎn)就是該數(shù)據(jù)類(lèi)型了,強(qiáng)類(lèi)型語(yǔ)言包括Java禁舷、.net 彪杉、Python、C++等語(yǔ)言牵咙。
  • 弱類(lèi)型語(yǔ)言是一種弱類(lèi)型定義的語(yǔ)言派近,某一個(gè)變量被定義類(lèi)型,該變量可以根據(jù)環(huán)境變化自動(dòng)進(jìn)行轉(zhuǎn)換洁桌,不需要經(jīng)過(guò)顯性強(qiáng)制轉(zhuǎn)換渴丸。
  • 無(wú)論是強(qiáng)類(lèi)型語(yǔ)言還是弱類(lèi)型語(yǔ)言,判別的根本是是否會(huì)隱性的進(jìn)行語(yǔ)言類(lèi)型轉(zhuǎn)變另凌。強(qiáng)類(lèi)型語(yǔ)言在速度上略遜于弱類(lèi)型語(yǔ)言谱轨,但是強(qiáng)類(lèi)型定義語(yǔ)言帶來(lái)的嚴(yán)謹(jǐn)性又能避免不必要的錯(cuò)誤。

數(shù)組和指針的區(qū)別

指針 數(shù)組
存放的是數(shù)據(jù)在內(nèi)存中的地址 存儲(chǔ)多個(gè)相同類(lèi)型數(shù)據(jù)的集合
同類(lèi)型指針可以相互賦值 數(shù)組不可以途茫,只能一個(gè)一個(gè)元素賦值碟嘴、拷貝
指針是間接訪問(wèn)數(shù)據(jù)溪食,需要通過(guò)解引用來(lái)獲得指定地址的內(nèi)容 數(shù)組可以直接通過(guò)下標(biāo)訪問(wèn)數(shù)據(jù)
sizeof(指針)是指針變量的大小 sizeof(數(shù)組名)數(shù)組所占存儲(chǔ)空間的內(nèi)存
指針名可以表示地址囊卜,并且可以修改 數(shù)組名也可以表示地址但是不可以修改

補(bǔ)充:數(shù)組傳參時(shí)會(huì)退化成為指針
C語(yǔ)言只會(huì)以值拷貝的方式傳遞參數(shù),參數(shù)傳遞時(shí),如果只拷貝整個(gè)數(shù)組栅组,效率會(huì)大大降低雀瓢,并且在參數(shù)位于棧上,太大的數(shù)組拷貝將會(huì)導(dǎo)致棧溢出玉掸。因此刃麸,C語(yǔ)言將數(shù)組的傳參進(jìn)行了退化。將整個(gè)數(shù)組拷貝一份傳入函數(shù)時(shí)司浪,將數(shù)組名看做常量指針泊业,傳數(shù)組首元素的地址。

字符數(shù)組和字符串常量

const char * arr = "123";//字符串常量
字符串123保存在常量區(qū)啊易,const本來(lái)的作用使arr指向的值不能通過(guò)arr來(lái)修改吁伺,但是字符串123保存在常量區(qū),本來(lái)就不可修改租谈,所以加不加const效果都是一樣的

char * brr = "123"; //字符串常量
字符串123保存在常量區(qū)篮奄,這個(gè)arr指針指向的是同一個(gè)位置,同樣不能通過(guò)brr去修改123的值

const char crr[] = "123";
這里123本來(lái)是在棧上的割去,但是編譯器可能會(huì)做某些優(yōu)化窟却,將其放到常量區(qū)

char drr[] = "123";//字符數(shù)組
字符串123保存在棧區(qū),可以通過(guò)drr進(jìn)行修改
此處的賦值是將常量區(qū)的字符串"123"拷貝到了堆棧區(qū)的數(shù)drr的空間了呻逆。數(shù)組drr是在堆棧區(qū)開(kāi)辟了空間夸赫,此時(shí)是可以修改字符串的值,因?yàn)樾薷牡氖嵌褩^(qū)的字符串的值咖城。另外此時(shí)的數(shù)組名drr是堆棧區(qū)中的"hello"的首地址憔足。

static關(guān)鍵字的作用

c++和c的區(qū)別
c++中的四種cast
c++中指針和引用的區(qū)別
指針和數(shù)組的區(qū)別
野指針&懸空指針
虛函數(shù)&純虛函數(shù)
為什么析構(gòu)函數(shù)是虛函數(shù)&為什么C++默認(rèn)的析構(gòu)函數(shù)不是虛函數(shù)
函數(shù)指針VS指針函數(shù)
C++中析構(gòu)函數(shù)的作用
靜態(tài)函數(shù)與虛函數(shù)的區(qū)別
重載&重寫(xiě)&覆蓋
多態(tài):靜態(tài)多態(tài)&動(dòng)態(tài)多態(tài)
i++與++i的區(qū)別與實(shí)現(xiàn)
四種智能指針的實(shí)現(xiàn)
字符串之間的區(qū)別

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酒繁,隨后出現(xiàn)的幾起案子滓彰,更是在濱河造成了極大的恐慌,老刑警劉巖州袒,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揭绑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡郎哭,警方通過(guò)查閱死者的電腦和手機(jī)他匪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)夸研,“玉大人邦蜜,你說(shuō)我怎么就攤上這事『ブ粒” “怎么了悼沈?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵贱迟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我絮供,道長(zhǎng)衣吠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任壤靶,我火速辦了婚禮缚俏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贮乳。我一直安慰自己忧换,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布向拆。 她就那樣靜靜地躺著包雀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亲铡。 梳的紋絲不亂的頭發(fā)上才写,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音奖蔓,去河邊找鬼赞草。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吆鹤,可吹牛的內(nèi)容都是我干的厨疙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼疑务,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沾凄!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起知允,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤撒蟀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后温鸽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體保屯,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年涤垫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姑尺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蝠猬,死狀恐怖切蟋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榆芦,我是刑警寧澤柄粹,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布喘鸟,位于F島的核電站,受9級(jí)特大地震影響镰惦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜犬绒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一旺入、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凯力,春花似錦茵瘾、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至祈惶,卻和暖如春雕旨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捧请。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工凡涩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疹蛉。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓活箕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親可款。 傳聞我的和親對(duì)象是個(gè)殘疾皇子育韩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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