欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語言

C語言小知識

時(shí)間:2025-02-24 06:16:37 C語言 我要投稿

C語言小知識匯總

  C語言小知識你知道多少呢?下面是百分網(wǎng)小編匯總的C語言小知識,快來看看吧!

C語言小知識匯總

  基本數(shù)據(jù)類型

  void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針,顯示丟棄運(yùn)算結(jié)果。(C89標(biāo)準(zhǔn)新增)

  char:字符型類型數(shù)據(jù),屬于整型數(shù)據(jù)的一種。(K&R時(shí)期引入)

  int:整型數(shù)據(jù),表示范圍通常為編譯器指定的內(nèi)存字節(jié)長。(K&R時(shí)期引入)

  float:單精度浮點(diǎn)型數(shù)據(jù),屬于浮點(diǎn)數(shù)據(jù)的一種。(K&R時(shí)期引入)

  double:雙精度浮點(diǎn)型數(shù)據(jù),屬于浮點(diǎn)數(shù)據(jù)的.一種。(K&R時(shí)期引入)

  _Bool:布爾型(C99標(biāo)準(zhǔn)新增)

  _Complex:復(fù)數(shù)的基本類型(C99標(biāo)準(zhǔn)新增)

  _Imaginary:虛數(shù),與復(fù)數(shù)基本類型相似,沒有實(shí)部的純虛數(shù)(C99標(biāo)準(zhǔn)新增)

  _Generic:提供重載的接口入口(C11標(biāo)準(zhǔn)新增)

  類型修飾關(guān)鍵字

  short:修飾int,短整型數(shù)據(jù),可省略被修飾的'int。(K&R時(shí)期引入)

  long:修飾int,長整型數(shù)據(jù),可省略被修飾的int。(K&R時(shí)期引入)

  long long:修飾int,超長整型數(shù)據(jù),可省略被修飾的int。(C99標(biāo)準(zhǔn)新增)

  signed:修飾整型數(shù)據(jù),有符號數(shù)據(jù)類型。(C89標(biāo)準(zhǔn)新增)

  unsigned:修飾整型數(shù)據(jù),無符號數(shù)據(jù)類型。(K&R時(shí)期引入)

  restrict:用于限定和約束指針,并表明指針是訪問一個(gè)數(shù)據(jù)對象的唯一且初始的方式。(C99標(biāo)準(zhǔn)新增)

  復(fù)雜類型關(guān)鍵字

  struct:結(jié)構(gòu)體聲明。(K&R時(shí)期引入)

  union:聯(lián)合體聲明。(K&R時(shí)期引入)

  enum:枚舉聲明。(C89標(biāo)準(zhǔn)新增)

  typedef:聲明類型別名。(K&R時(shí)期引入)

  sizeof:得到特定類型或特定類型變量的大小。(K&R時(shí)期引入)

  inline:內(nèi)聯(lián)函數(shù)用于取代宏定義,會在任何調(diào)用它的地方展開。(C99標(biāo)準(zhǔn)新增)

  存儲級別關(guān)鍵字

  auto:指定為自動(dòng)變量,由編譯器自動(dòng)分配及釋放。通常在棧上分配。與static相反。當(dāng)變量未指定時(shí)默認(rèn)為auto。(K&R時(shí)期引入)

  static:指定為靜態(tài)變量,分配在靜態(tài)變量區(qū),修飾函數(shù)時(shí),指定函數(shù)作用域?yàn)槲募䞍?nèi)部。(K&R時(shí)期引入)

  register:指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數(shù)形參,建議編譯器通過寄存器而不是堆棧傳遞參數(shù)。(K&R時(shí)期引入)

  extern:指定對應(yīng)變量為外部變量,即標(biāo)示變量或者函數(shù)的定義在別的`文件中,提示編譯器遇到此變量和函數(shù)時(shí)在其他模塊中尋找其定義。(K&R時(shí)期引入)

  const:指定變量不可被當(dāng)前線程改變(但有可能被系統(tǒng)或其他線程改變)。(C89標(biāo)準(zhǔn)新增)

  volatile:指定變量的值有可能會被系統(tǒng)或其他線程改變,強(qiáng)制編譯器每次從內(nèi)存中取得該變量的值,阻止編譯器把該變量優(yōu)化成寄存器變量。(C89標(biāo)準(zhǔn)新增)

  流程控制關(guān)鍵字

  跳轉(zhuǎn)結(jié)構(gòu)

  return:用在函數(shù)體中,返回特定值(如果是void類型,則不返回函數(shù)值)。(K&R時(shí)期引入)

  continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán)。(K&R時(shí)期引入)

  break:跳出當(dāng)前循環(huán)或switch結(jié)構(gòu)。(K&R時(shí)期引入)

  goto:無條件跳轉(zhuǎn)語句。(K&R時(shí)期引入)

  分支結(jié)構(gòu)

  if:條件語句,后面不需要放分號。(K&R時(shí)期引入)

  else:條件語句否定分支(與if連用)。(K&R時(shí)期引入)

  switch:開關(guān)語句(多重分支語句)。(K&R時(shí)期引入)

  case:開關(guān)語句中的分支標(biāo)記,與switch連用。(K&R時(shí)期引入)

  default:開關(guān)語句中的“其他”分支,可選。(K&R時(shí)期引入)

  編譯

  #define 預(yù)編譯宏

  #if 表達(dá)式 #else if 表達(dá)式 #else #endif 條件編譯

  #ifdef 宏 #else #endif 條件編譯

  #ifndef 宏 #else #endif 條件編譯與條件編譯

  語法結(jié)構(gòu)

  選擇結(jié)構(gòu)

  順序結(jié)構(gòu)的程序雖然能解決計(jì)算、輸出等問題,但不能做判斷再選擇。對于要先做判斷再選擇的問題就要使用選擇結(jié)構(gòu)。選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的`分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語句。選擇結(jié)構(gòu)適合于帶有邏輯或關(guān)系比較等條件判斷的計(jì)算,設(shè)計(jì)這類程序時(shí)往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設(shè)計(jì)分析與語言分開,使得問題簡單化,易于理解。程序流程圖是根據(jù)解題分析所繪制的程序執(zhí)行流程圖。[23]

  循環(huán)結(jié)構(gòu)

  循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長的程序結(jié)構(gòu),C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。四種循環(huán)可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環(huán),因?yàn)閺?qiáng)制改變程序的順序經(jīng)常會給程序的運(yùn)行帶來不可預(yù)料的.錯(cuò)誤。

  特別要注意在循環(huán)體內(nèi)應(yīng)包含趨于結(jié)束的語句(即循環(huán)變量值的改變),否則就可能成了一個(gè)死循環(huán),這是初學(xué)者的一個(gè)常見錯(cuò)誤。

  三個(gè)循環(huán)的異同點(diǎn):用while和do…while循環(huán)時(shí),循環(huán)變量的初始化的操作應(yīng)在循環(huán)體之前,而for循環(huán)一般在語句1中進(jìn)行的;while循環(huán)和for循環(huán)都是先判斷表達(dá)式,后執(zhí)行循環(huán)體,而do…while循環(huán)是先執(zhí)行循環(huán)體后判斷表達(dá)式,也就是說do…while的循環(huán)體最少被執(zhí)行一次,而while循環(huán)和for就可能一次都不執(zhí)行。另外還要注意的是這三種循環(huán)都可以用break語句跳出循環(huán),用continue語句結(jié)束本次循環(huán),而goto語句與if構(gòu)成的循環(huán),是不能用break和 continue語句進(jìn)行控制的。

  順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)并不彼此孤立的,在循環(huán)中可以有分支、順序結(jié)構(gòu),分支中也可以有循環(huán)、順序結(jié)構(gòu),其實(shí)不管哪種結(jié)構(gòu),均可廣義的把它們看成一個(gè)語句。在實(shí)際編程過程中常將這三種結(jié)構(gòu)相互結(jié)合以實(shí)現(xiàn)各種算法,設(shè)計(jì)出相應(yīng)程序,但是要編程的問題較大,編寫出的程序就往往很長、結(jié)構(gòu)重復(fù)多,造成可讀性差,難以理解,解決這個(gè)問題的方法是將C程序設(shè)計(jì)成模塊化結(jié)構(gòu)

  順序結(jié)構(gòu)

  順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的'執(zhí)行順序是自上而下,依次執(zhí)行。

  例如:a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問題就好像交換兩個(gè)杯子水,這當(dāng)然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序?yàn)椋篶 = a; a = b; b = c;執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯(cuò)誤。順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡單的完整程序,常見的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計(jì)算圓的面積,其程序的語句順序就是輸入圓的半徑r,計(jì)算s = 3.14159*r*r,輸出圓的面積s。不過大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。[22]

【C語言小知識】相關(guān)文章:

C語言基礎(chǔ)小知識09-18

C語言基礎(chǔ)知識小總結(jié)07-08

嵌入式C語言編程小知識12-20

C語言嵌入式編程小知識08-30

C語言入門知識07-20

C語言的應(yīng)用知識08-30

嵌入式C語言編程小知識總結(jié)08-12

C語言預(yù)處理知識06-13

C語言知識點(diǎn)精選09-16