C語言程序設計筆記_第1頁
C語言程序設計筆記_第2頁
C語言程序設計筆記_第3頁
C語言程序設計筆記_第4頁
C語言程序設計筆記_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

C語言程序設計筆記C語言程序設計筆記全文共9頁,當前為第1頁。C語言程序設計筆記全文共9頁,當前為第1頁。第一章概述

1.

C語言的特點

①語言簡潔、緊湊,使用方便、靈活。共有32個關(guān)鍵字,9種控制語句。

②運算符豐富,公有34種運算符。

③數(shù)據(jù)結(jié)構(gòu)豐富,數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組、指針、結(jié)構(gòu)體、共用體等。

④具有結(jié)構(gòu)化的控制語句(如if...else、while、do...while、switch、for)

⑤語法限制不太嚴格,程序設計自由度大。

⑥允許直接訪問物理地址,能進行位(bit)操作,可以直接對硬件操作。

⑦生成目標代碼質(zhì)量高,程序執(zhí)行效率高。

⑧可移植性好。

2.

C語言的用途

C雖不擅長科學計算和管理領域,但對操作系統(tǒng)和系統(tǒng)實用程序以及對硬件進行操作方面,C有明顯的優(yōu)勢?,F(xiàn)在很多大型應用軟件也用C編寫。

Top

of

Page

第二章數(shù)據(jù)類型、運算符與表達式

1.

C的數(shù)據(jù)類型

C的數(shù)據(jù)類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型。

2.

常量與變量

常量其值不可改變,符號常量名通常用大寫。變量其值可以改變,變量名只能由字母、數(shù)字和下劃線組成,且第一個字符必須為字母或下劃線。否則為不合法的變量名。變量在編譯時為其分配相應存儲單元。

3.

整型數(shù)據(jù)

整型常量的表示方法:十進制不用說了,八進制以0開頭,如0123,十六進制以0x開頭,如0x1e。

整型變量分為:基本型(int)、短整型(short

int)、長整型(long

int)和無符號型。不同機器上各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)不同,一般int型為2個字節(jié),long型為4個字節(jié)。

4.

實型數(shù)據(jù)

實型常量表示形式:十進制形式由數(shù)字和小數(shù)點組成(必須有小數(shù)點),如:0.12、.123、123.、0.0等。指數(shù)形式如123e3代表123×10的三次方。

實型變量分為單精度(float)和雙精度(double)兩類。在一般系統(tǒng)中float型占4字節(jié),7位有效數(shù)字,double型占8字節(jié),15~16位有效數(shù)字。

5.

字符型數(shù)據(jù)

字符變量用單引號括起來,如'a','b'等。還有一些是特殊的字符常量,如'\n','\t'等。分別代表換行和橫向跳格。

字符變量以char

來定義,一個變量只能存放一個字符常量。

字符串常量是由雙引號括起來的字符序列。這里一定要注意'a'和"a"的不同,前者為字符常量,后者為字符串常量,c規(guī)定:每個字符串的結(jié)尾加一個結(jié)束標志'\0',實際上"a"包含兩個字符:'a'和'\0'。

6.

數(shù)值型數(shù)據(jù)間的混合運算

整型、字符型、實型數(shù)據(jù)間可以混合運算,運算時不同類型數(shù)據(jù)要轉(zhuǎn)換成同一類型再運算,轉(zhuǎn)換規(guī)則:

char,short

->

int

->

unsigned

->

long

->

double

<-

float

7.

運算符和表達式

c運算符包括:

算數(shù)運算符(+-*/%)

關(guān)系運算符(

>

<

==

>=

<=

!=

邏輯運算符(

!

&&

||

位運算符(

<<

>>

~

|

^

&

賦值運算符(=

條件運算符(?

:

逗號運算符(

,

指針運算符(

*

&

求字節(jié)數(shù)(

sizeof

強制類型轉(zhuǎn)換(類型)

分量運算符(.

->

下標運算符([

]

其它運算符(如函數(shù)調(diào)用運算符(

)

自增自減運算符(++

--

)注意:++i和i++的不同之處,++i使用i之前先使i加1,i++使用i之后,使i加1。

逗號表達式的求解過程:先求解表達式1,再求解表達式2,整個表達式的值是表達式2的值。

Top

of

Page

第三章

最簡單的c程序設計

C語言程序設計筆記全文共9頁,當前為第2頁。

1.c的9種控制語句:

if()

~

else~

for()~

while()~

do~while()

continue

break

switch

goto

return

程序的三種基本結(jié)構(gòu):順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)

2.數(shù)據(jù)輸出

c語言不提供輸入輸出語句,輸入輸出操作是由c的庫函數(shù)完成。但要包含頭文件stdio.h。

putchar(

)

向終端輸出一個字符

printf(

)的格式字符:

d格式符用來輸出十進制整數(shù)

%d

按整型數(shù)據(jù)的實際長度輸出

%md

使輸出長度為m,如果數(shù)據(jù)長度小于m,則左補空格,如果大于m,則輸出實際長度

%ld

輸出長整型數(shù)據(jù)

o格式符以八進制形式輸出整數(shù)

x格式符以十六進制形式輸出整數(shù)

u格式符用來輸出unsigned型數(shù)據(jù),以十進制形式輸出

c格式符用來輸出一個字符

s格式符輸出一個字符串

%s輸出實際長度字符串

%ms

輸出的串占m列,如果串長度小于m,左補空格,如果大于m,實際輸出

%-ms輸出的串占m列,如果串長度小于m,右補空格,

%m.ns

輸出占m列,但只取字符串中左端n個字符并靠右對齊

%-m.ns

m、n含義同上,靠左對齊,如果n>m,則m自動取n值

f格式符以小數(shù)形式輸出實數(shù)

%f

整數(shù)部分全部輸出,小數(shù)部分輸出6位

%m.nf

輸出數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,左補空格

%-m.nf

同上,右補空格

e格式符以指數(shù)形式輸出實數(shù)

%e

系統(tǒng)指定6位小數(shù),5位指數(shù)(e+002

)

g格式符輸出實數(shù),根據(jù)數(shù)值大小,自動選f格式或e格式

3.數(shù)據(jù)輸入

C語言程序設計筆記全文共9頁,當前為第3頁。

getchar(

)

從終端輸入一個字符

scanf(

格式控制,地址列表)

標準C

scanf中不使用%u,對于unsigned型數(shù)據(jù),以%d或%o或%x輸入。%后的*,用來跳過它相應的數(shù)據(jù)。輸入數(shù)據(jù)時不能規(guī)定精度如scanf(

"%7.2f",

&a

);是不合法的。

第四章

邏輯運算和判斷選取控制

1.

關(guān)系運算符:

c提供6種關(guān)系運算符(>

<

<=

>=

==

!=

)前四種優(yōu)先級高于后兩種。

2.

If語句

C提供了三種形式的if語句

If(表達式)

語句

If(表達式)

語句1

else

語句2

If(表達式1)

語句1

Else

if(表達式2)

語句2

...

else

語句n

3.

條件運算符

(a>b)?a:b

條件為真,表達式取值a,否則取值b

4.

Switch語句

Switch(表達式)

{

case

常量表達式1:語句1;

break;

case

常量表達式2:語句2;

break;

...

case

常量表達式n:語句n;

break;

default

:語句n+1;

}

Top

of

Page

第五章

循環(huán)控制

1.

幾種循環(huán)語句

C語言程序設計筆記全文共9頁,當前為第4頁。goto語句(現(xiàn)已很少使用)

while語句先判斷表達式后執(zhí)行語句

do-while語句先執(zhí)行語句后判斷表達式

for語句

2.

Break語句和continue語句

Break語句用于跳出循環(huán),continue用于結(jié)束本次循環(huán)。

Top

of

Page

第六章

數(shù)組

1.

一維數(shù)組

c規(guī)定只有靜態(tài)存儲(static)和外部存儲(extern)數(shù)組才能初始化。給數(shù)組初始化時可以不指定數(shù)組長度。

2.

二維數(shù)組

3.

字符數(shù)組

部分字符串處理函數(shù)

puts(字符數(shù)組)將一個字符串輸出到終端。

gets(字符數(shù)組)

從終端輸入一個字符串到字符數(shù)組,并且得到一個函數(shù)值,為該字符數(shù)組的首地址

strcat(字符數(shù)組1,字符數(shù)組2)連接兩個字符數(shù)組中的字符串,數(shù)組1必須足夠大。

Strcpy(字符數(shù)組1,字符串2)將字符串2拷貝到字符數(shù)組1中。

Strcmp(字符串1,字符串2)

比較字符串,相等返回0,字符串1>字符串2,返回正數(shù),小于返回負數(shù)。

Strlen(字符數(shù)組)

求字符串長度。

Strlwr(

字符串)將字符串中的大寫字母轉(zhuǎn)換成小寫

Strupr(

字符串)

將字符串中的小寫字母轉(zhuǎn)換成大寫

以上是一些比較常用的字符串處理函數(shù)。

Top

of

Page

第七章

函數(shù)

1.

關(guān)于形參和實參的說明

在函數(shù)被調(diào)用之前,形參不占內(nèi)存

實參可以是常量、變量或表達式

必須指定形參的類型

C語言程序設計筆記全文共9頁,當前為第5頁。④

實參與形參類型應一致

實參對形參的數(shù)據(jù)傳遞是"值傳遞",即單向傳遞

2.

函數(shù)返回值

如果想讓函數(shù)返回一個值,在函數(shù)中就要用return語句來獲得,在定義函數(shù)時也要對函數(shù)值指定類型,如果不指定,默認返回整型。

3.

函數(shù)調(diào)用

1)注意在函數(shù)調(diào)用時實參和形參的個數(shù)、類型應一一對應。對實參表求值的順序是不確定的,有的系統(tǒng)按自左至右,有的系統(tǒng)則按自右至左的順序。這一點要注意。

2)函數(shù)調(diào)用的方式:函數(shù)語句,函數(shù)表達式,函數(shù)參數(shù)

3)如果主調(diào)函數(shù)和被調(diào)函數(shù)在同一文件中,并且主調(diào)函數(shù)在前,那么一般要在主調(diào)函數(shù)中對被調(diào)函數(shù)進行說明。除非:(1)被調(diào)函數(shù)的返回值類型為整型或字符型(2)被調(diào)函數(shù)出現(xiàn)在主調(diào)函數(shù)之前。

4)對函數(shù)的說明和定義是不同的,定義是指對函數(shù)功能的確立,包括指定函數(shù)名,函數(shù)值類型,形參及其類型、函數(shù)體等。說明則只是對已定義的函數(shù)返回值類型進行說明,只包括函數(shù)名、函數(shù)類型以及一個空的括弧,不包括形參和函數(shù)體。

5)c語言允許函數(shù)的遞歸調(diào)用(在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接的調(diào)用該函數(shù)本身)。

4.

數(shù)組作為函數(shù)參數(shù)

1)數(shù)組元素作為函數(shù)參數(shù)和一般變量相同

2)數(shù)組名作參數(shù)應該在主調(diào)和被調(diào)函數(shù)分別定義數(shù)組,形參數(shù)組的大小可以不定義。注意:數(shù)組名作參數(shù),不是單向傳遞。

3)多維數(shù)組作參數(shù),在被調(diào)函數(shù)中對形參數(shù)組定義時可以省略第一維的大小說明,但不能省略第二維或更高維的說明。

5.

局部變量和全局變量

從變量作用域角度分,變量可分為局部變量和全局變量。

1)內(nèi)部變量(局部變量)

在一個函數(shù)內(nèi)定義,只在函數(shù)范圍內(nèi)有效的變量。

2)外部變量(全局變量)

在函數(shù)外定義,可以為本文件其它函數(shù)所共用,有效范圍從定義變量的位置開始

到本文件結(jié)束。建議盡量少使用全局變量,因為它在程序全部執(zhí)行過程中都占用

資源,而且使函數(shù)的通用性降低了。如果在定義外部變量之前的函數(shù)要想使用該

外部變量,則應在該函數(shù)中用extern作外部變量說明。

C語言程序設計筆記全文共9頁,當前為第6頁。6.

動態(tài)存儲變量與靜態(tài)存儲變量

從變量值存在的時間(生存期)角度來分,可分為靜態(tài)存儲變量和動態(tài)存儲變量。靜態(tài)存儲指在程序運行期間給變量分配固定的存儲空間,動態(tài)存儲指程序運行期間根據(jù)需要動態(tài)的給變量分配存儲空間。

C語言中,變量的存儲方法分為兩大類:靜態(tài)存儲類和動態(tài)存儲類,具體包括:自動的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。

1)

局部變量的存儲方式

函數(shù)中的局部變量如不作專門說明,都之a(chǎn)uto的,即動態(tài)存儲的,auto可以省略。局部變量也可以定義為static的,這時它在函數(shù)內(nèi)值是不變的。靜態(tài)局部變量如不賦初值,編譯時系統(tǒng)自動賦值為0,動態(tài)局部變量如不賦初值,則它的值是個不確定的值。C規(guī)定,只有在定義全局變量和局部靜態(tài)變量時才能對數(shù)組賦初值。為提高執(zhí)行效率,c允許將局部變量值放在寄存器中,這種變量叫register變量,要用register說明。但只有局部動態(tài)變量和形式參數(shù)可以作為register變量,其它不行。

2)

全局變量的存儲方式

全局變量在函數(shù)外部定義,編譯時分配在靜態(tài)存儲區(qū),可以在程序中各個函數(shù)所引用。多個文件的情況如何引用全局變量呢?假如在一個文件定義全局變量,在別的文件引用,就要在此文件中用extern對全局變量說明,但如果全局變量定義時用static的話,此全局變量就只能在本文件中引用了,而不能被其它文件引用。

3)

存儲類別小結(jié)

從作用域角度分,有局部變量和全局變量

局部變量:自動變量,即動態(tài)局部變量(離開函數(shù),值就消失)

靜態(tài)局部變量(離開函數(shù),值仍保留)

寄存器變量(離開函數(shù),值就消失)

(形參可定義為自動變量和寄存器變量)

全局變量:靜態(tài)全局變量(只限本文件引用)

全局變量(允許其它文件引用)

從存在的時間分,有靜態(tài)存儲和動態(tài)存儲

動態(tài)存儲:自動變量(本函數(shù)內(nèi)有效)

寄存器變量(本函數(shù)內(nèi)有效)

形參

靜態(tài)存儲:靜態(tài)局部變量(函數(shù)內(nèi)有效)

靜態(tài)全局變量(本文件內(nèi)有效)

全局變量(其它文件可引用)

從變量值存放的位置分

靜態(tài)存儲區(qū):靜態(tài)局部變量

靜態(tài)全局變量

全局變量

動態(tài)存儲區(qū):自動變量和形參

寄存器內(nèi):寄存器變量

7.

內(nèi)部函數(shù)和外部函數(shù)

C語言程序設計筆記全文共9頁,當前為第7頁。

內(nèi)部函數(shù):只能被本文件中的其它函數(shù)調(diào)用,定義時前加static,內(nèi)部函數(shù)又稱靜態(tài)函數(shù)。

外部函數(shù):可以被其它文件調(diào)用,定義時前加extern,如果省略,則隱含為外部函數(shù),在需要調(diào)用此函數(shù)的文件中,一般要用extern說明。

Top

of

Page

第八章

預編譯處理

c編譯系統(tǒng)在對程序進行通常的編譯之前,先進行預處理。c提供的預處理功能主要有以下三種:1)宏定義2)文件包含3)條件編譯

1.

宏定義

不帶參數(shù)的宏定義

用一個指定的標識符來代表一個字符串,形式:#define

標識符

字符串

幾點說明:

1)

宏名一般用大寫

2)

宏定義不作語法檢查,只有在編譯被宏展開后的源程序時才會報錯

3)

宏定義不是c語句,不在行末加分號

4)

宏名有效范圍為定義到本源文件結(jié)束

5)

可以用#undef命令終止宏定義的作用域

6)

在宏定義時,可以引用已定義的宏名

帶參數(shù)的宏定義

定義形式:#define

宏名(參數(shù)表)字符串

這和函數(shù)有些類似,但他們是不同的:

1)

函數(shù)調(diào)用時,先求實參表達式值,再代入形參,而宏只是簡單替換,并不求值

2)

函數(shù)調(diào)用是在程序運行時分配內(nèi)存的,而宏展開時并不分配內(nèi)存,也沒有返回值的概念

3)

對函數(shù)中的實參和形參都要定義類型,而且要求一致,宏名無類型,其參數(shù)也沒有類型。

4)

函數(shù)只有一個返回值,而宏可以得到幾個結(jié)果

5)

宏替換不占運行時間,只占編譯時間,而函數(shù)調(diào)用占運行時間

2.

文件包含處理

#include

"文件1"

就是將文件1的全部內(nèi)容復制插入到#include位置,作為一個源文件進行編譯。

在#include命令中,文件名可以用"

"也可以用<

>,假如現(xiàn)在file1.c中包含file2.h文件,"

"表示系統(tǒng)先在file1.c所在目錄中找file2.h,如果找不到,再按系統(tǒng)指定的標準方式檢索目錄,<

>表示系統(tǒng)直接按指定的標準方式檢索目錄。所以用"

"保險一點。

C語言程序設計筆記全文共9頁,當前為第8頁。

3.

條件編譯

條件編譯指不對整個程序都編譯,而是編譯滿足條件的那部分。條件編譯有以下幾種形式:

1)#ifdef

標識符

程序段1

#else

程序段2

#endif

它的作用:當標識符在前面

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論