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

C語(yǔ)言

C語(yǔ)言基礎(chǔ)小知識(shí)

時(shí)間:2025-02-24 15:29:43 C語(yǔ)言 我要投稿

C語(yǔ)言基礎(chǔ)小知識(shí)

  想要學(xué)好C語(yǔ)言,那么必須打好基礎(chǔ),下面小編為大家?guī)?lái)了C語(yǔ)言基礎(chǔ)小知識(shí),歡迎大家閱讀!

C語(yǔ)言基礎(chǔ)小知識(shí)

  C語(yǔ)言基礎(chǔ)小知識(shí)

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

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

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

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

  float:?jiǎn)尉雀↑c(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ù)基本類型相似,沒(méi)有實(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,長(zhǎng)整型數(shù)據(jù),可省略被修飾的int。(K&R時(shí)期引入)

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

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

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

  restrict:用于限定和約束指針,并表明指針是訪問(wèn)一個(gè)數(shù)據(jù)對(duì)象的唯一且初始的方式。(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ù)用于取代宏定義,會(huì)在任何調(diào)用它的地方展開。(C99標(biāo)準(zhǔn)新增)

  存儲(chǔ)級(jí)別關(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:指定為寄存器變量,建議編譯器將變量存儲(chǔ)到寄存器中使用,也可以修飾函數(shù)形參,建議編譯器通過(guò)寄存器而不是堆棧傳遞參數(shù)。(K&R時(shí)期引入)

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

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

  volatile:指定變量的值有可能會(huì)被系統(tǒng)或其他線程改變,強(qiáng)制編譯器每次從內(nèi)存中取得該變量的值,阻止編譯器把該變量?jī)?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:無(wú)條件跳轉(zhuǎn)語(yǔ)句。(K&R時(shí)期引入)

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

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

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

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

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

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

  編譯

  #define 預(yù)編譯宏

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

  #ifdef 宏 #else #endif 條件編譯

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

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

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

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

  例如:a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問(wèn)題就好像交換兩個(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è)簡(jiǎn)單的完整程序,常見的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計(jì)算圓的.面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計(jì)算s = 3.14159*r*r,輸出圓的面積s。不過(guò)大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語(yǔ)句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。

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

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

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

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

  特別要注意在循環(huán)體內(nèi)應(yīng)包含趨于結(jié)束的語(yǔ)句(即循環(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)一般在語(yǔ)句1中進(jìn)行的;while循環(huán)和for循環(huán)都是先判斷表達(dá)式,后執(zhí)行循環(huán)體,而do…while循環(huán)是先執(zhí)行循環(huán)體后判斷表達(dá)式,也就是說(shuō)do…while的循環(huán)體最少被執(zhí)行一次,而while循環(huán)和for就可能一次都不執(zhí)行。另外還要注意的是這三種循環(huán)都可以用break語(yǔ)句跳出循環(huán),用continue語(yǔ)句結(jié)束本次循環(huán),而goto語(yǔ)句與if構(gòu)成的循環(huán),是不能用break和 continue語(yǔ)句進(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è)語(yǔ)句。在實(shí)際編程過(guò)程中常將這三種結(jié)構(gòu)相互結(jié)合以實(shí)現(xiàn)各種算法,設(shè)計(jì)出相應(yīng)程序,但是要編程的問(wèn)題較大,編寫出的程序就往往很長(zhǎng)、結(jié)構(gòu)重復(fù)多,造成可讀性差,難以理解,解決這個(gè)問(wèn)題的方法是將C程序設(shè)計(jì)成模塊化結(jié)構(gòu)


【C語(yǔ)言基礎(chǔ)小知識(shí)】相關(guān)文章:

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

C語(yǔ)言基礎(chǔ)知識(shí)10-13

C語(yǔ)言的基礎(chǔ)知識(shí)08-16

C語(yǔ)言程序基礎(chǔ)知識(shí)09-09

C語(yǔ)言基礎(chǔ)知識(shí)大全09-23

c語(yǔ)言入門基礎(chǔ)知識(shí)07-18

C語(yǔ)言基礎(chǔ)知識(shí)匯總07-15

c語(yǔ)言公共基礎(chǔ)知識(shí)06-21

C語(yǔ)言基礎(chǔ)知識(shí)總結(jié)09-13