第一二三四五六章

第一二三四五六章

第一章

C語言是一種

  • 底層語言
  • 小型語言
  • 包容性語言

優(yōu)點(diǎn):

  • 高效
  • 可移植
  • 功能強(qiáng)大
  • 靈活
  • 標(biāo)準(zhǔn)庫
  • 與UNIX系統(tǒng)的集成

缺點(diǎn):

  • C程序更容易隱藏錯(cuò)誤
  • C程序可能會(huì)難以理解
  • C程序可能會(huì)難以修改

高效的使用C語言

  • 學(xué)習(xí)如何規(guī)避C語言的缺陷:《C陷阱與缺陷》
  • 使用軟件工具使程序更可靠:lint诗祸,splint
  • 利用現(xiàn)有的代碼庫
  • 采用一套切合實(shí)際的編碼規(guī)范
  • 避免“投機(jī)取巧”和極度復(fù)雜的代碼
  • 緊貼標(biāo)準(zhǔn)

第二章

  • 指令:預(yù)處理器執(zhí)行的命令
  • 函數(shù):一系列組合在一起并且賦予了名字的語句
  • 語句:程序運(yùn)行時(shí)執(zhí)行的命令
  • 聲明:變量使用前必須對(duì)其進(jìn)行聲明。
    • C99:聲明可以不在語句之前
  • 賦值:變量通過賦值的方式獲得值
  • C通用原則:在任何需要數(shù)值的地方,都可以使用具有相同類型的表達(dá)式
  • 標(biāo)識(shí)符受限的情況:
    • 關(guān)鍵字
    • 某些編譯器吧特定的標(biāo)識(shí)符(如asm)視為附加關(guān)鍵字
    • 以下劃線開頭
    • C89指出以下劃線后跟一個(gè)大寫字母開頭的名字是保留字雷猪,程序員不應(yīng)使用
  • 根據(jù)C標(biāo)準(zhǔn)站玄,編譯器必須用一個(gè)空格字符替換每條注釋語句
  • 標(biāo)識(shí)符長度:
    • C89標(biāo)準(zhǔn)聲稱標(biāo)識(shí)符可以任意長笨腥,但只要求編譯器記住前31個(gè)字符(C99中是63個(gè))
    • 對(duì)于具有外部鏈接的標(biāo)識(shí)符帐萎,C89中只有前6個(gè)字符才是有效的表悬,并且不區(qū)分大小寫校读;C99中沼侣,前31個(gè)字符有效,且字母區(qū)分大小寫
    • 大多數(shù)編譯器和鏈接器都比標(biāo)準(zhǔn)要求的寬松
  • Horner法則

第三章

  • scanf函數(shù)
    • 工作方式:

      1. 從左邊開始處理字符串中的信息歉秫,對(duì)于格式串中的每一個(gè)轉(zhuǎn)換說明蛾洛,scanf函數(shù)從輸入的數(shù)據(jù)中定位適當(dāng)類型的項(xiàng),并在必要時(shí)跳過空格
      2. 然后scanf函數(shù)讀入數(shù)據(jù)項(xiàng)雁芙,并在遇到不可能屬于此項(xiàng)的字符時(shí)停止轧膘。
      3. 如果讀入數(shù)據(jù)項(xiàng)成功,那么scanf會(huì)繼續(xù)處理格式串的剩余部分却特;如果某一項(xiàng)不能成功讀入扶供,那么scanf函數(shù)不再查看格式串的剩余部分(或者余下的輸入數(shù)據(jù))而立即返回。
    • 在尋找數(shù)的起始位置時(shí)裂明,scanf函數(shù)會(huì)忽略空白字符(包括空格椿浓,水平和垂直制表太援,換頁,換行)

    • 識(shí)別數(shù)的規(guī)則:

      • 整數(shù):首先尋找正號(hào)或負(fù)號(hào)扳碍,然后讀取數(shù)字直到讀到一個(gè)非數(shù)字停止
      • 浮點(diǎn)數(shù):首先尋找一個(gè)正號(hào)或負(fù)號(hào)(可選)提岔,隨后是一串?dāng)?shù)字(可能含有小數(shù)點(diǎn)),再后是一個(gè)指數(shù)(可選)笋敞,指數(shù)由字母e(或E)碱蒙,可選符號(hào),和一個(gè)或多個(gè)數(shù)字構(gòu)成夯巷。
    • 格式串中空白字符:當(dāng)在格式串中遇到一個(gè)或多個(gè)連續(xù)空白字符時(shí)赛惩,scanf函數(shù)從輸入中重復(fù)讀取空白字符直到遇到一個(gè)非空白字符(把該字符放回原處)為止。格式串中的一個(gè)空白字符可以與輸入中任意數(shù)量的空白字符匹配趁餐,包括零個(gè)喷兼。

    • scanf中%d只能與十進(jìn)制形式的整數(shù)匹配,而%i可以匹配八進(jìn)制(0開頭)后雷,十六進(jìn)制(0x或0X)或十進(jìn)制形式的整數(shù)匹配季惯。


第四章

算術(shù)運(yùn)算符

  • 運(yùn)算符/的兩個(gè)操作數(shù)均為整數(shù),丟掉分?jǐn)?shù)部分來截取結(jié)果
  • 運(yùn)算符%要求操作數(shù)時(shí)整數(shù)臀突,否則無法編譯通過
  • /和%用于負(fù)數(shù)時(shí)結(jié)果難以確定:C89如果兩個(gè)操作數(shù)有一個(gè)是負(fù)數(shù)勉抓,那么結(jié)果可以向上也可以向下取整;C99除法結(jié)果總是向零截取候学,i%j的值的符號(hào)與i的相同藕筋。C89和C99都需要確保(a/b)*b+a%b的結(jié)果總是等于a。問題在于C89中a/ba%b有兩種情況可以滿足梳码。C99出現(xiàn)時(shí)念逞,大多數(shù)cpu都對(duì)除法的結(jié)果向零取整,因此這也被寫入標(biāo)準(zhǔn)边翁,作為唯一允許的結(jié)果。

賦值運(yùn)算符

  • 極少數(shù)情況下硕盹,由于a本身的副作用符匾,a+=ba=a+b 也不等同。a=a+b 只會(huì)對(duì)a進(jìn)行一次求值瘩例,而計(jì)算 a=a+b 則會(huì)對(duì)a進(jìn)行兩次求值啊胶。例:a[i++]+=2;中i只自增一次,而a[i++] = a[i++] + 2; 由于i的值在別處修改了垛贤,所以結(jié)果是未定義的焰坪。

自增和自減運(yùn)算符

  • 對(duì)于現(xiàn)代編譯器,使用++--不會(huì)使編譯后的結(jié)果更短或更快聘惦,繼續(xù)普及主要是因?yàn)楹啙嵑捅憷?/li>
  • ++--可以用于處理浮點(diǎn)數(shù)
  • 詞法分析中的“貪心法”:每一個(gè)符號(hào)應(yīng)該包含盡可能多的字符某饰。
  • 子表達(dá)式的求值順序(兩個(gè)例子中第二條語句的結(jié)果都是未定義的):
    • a=5;c = (b=a+2) - (a=1);
    • i=2;j = i + i++;
    • C沒有規(guī)定子表達(dá)式的求值順序(除了含有",""?:""&&"黔漂,"||"的子表達(dá)式)

第五章

  • 條件表達(dá)式使程序更短小诫尽,也更難以閱讀,應(yīng)避免使用
  • C99中提供了_Bool類型炬守,還提供了頭牧嫉,其中提供了bool宏,用來代表_Bool减途。還提供了truefalse兩個(gè)宏

第六章

  • for語句的三個(gè)表達(dá)式可以任意或全部省略
  • C99中第一個(gè)表達(dá)式可以替換為一個(gè)聲明
  • C99中酣藻,goto語句不可以用于繞過變長數(shù)組
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鳍置,隨后出現(xiàn)的幾起案子辽剧,更是在濱河造成了極大的恐慌,老刑警劉巖墓捻,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抖仅,死亡現(xiàn)場離奇詭異,居然都是意外死亡砖第,警方通過查閱死者的電腦和手機(jī)撤卢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梧兼,“玉大人放吩,你說我怎么就攤上這事∮鸾埽” “怎么了渡紫?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長考赛。 經(jīng)常有香客問我惕澎,道長,這世上最難降的妖魔是什么颜骤? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任唧喉,我火速辦了婚禮,結(jié)果婚禮上忍抽,老公的妹妹穿的比我還像新娘八孝。我一直安慰自己,他們只是感情好鸠项,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布干跛。 她就那樣靜靜地躺著,像睡著了一般祟绊。 火紅的嫁衣襯著肌膚如雪楼入。 梳的紋絲不亂的頭發(fā)上哥捕,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音浅辙,去河邊找鬼扭弧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛记舆,可吹牛的內(nèi)容都是我干的鸽捻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼泽腮,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼御蒲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诊赊,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤厚满,失蹤者是張志新(化名)和其女友劉穎泵殴,沒想到半個(gè)月后智玻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疹味,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卒茬,尸身上長有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
  • 文/蒙蒙 一腾供、第九天 我趴在偏房一處隱蔽的房頂上張望骨饿。 院中可真熱鬧,春花似錦台腥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闷游,卻和暖如春峻汉,著一層夾襖步出監(jiān)牢的瞬間贴汪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工休吠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扳埂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓瘤礁,卻偏偏與公主長得像阳懂,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柜思,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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