




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、主講人:高尚華郵箱:通院科協(xié)微信公眾號:xdtykx(很關(guān)鍵,一定要關(guān)注( _ ) )其他內(nèi)容不幸被考到不要罵我 總結(jié):1、一個C源程序由函數(shù)組成,這使得程序容易實現(xiàn)模塊化。其中有且僅有一個main()主函數(shù),它是程序的入口,與main函數(shù)的位置無關(guān);2、分號“;”是C語句的一部分,每一條語句均以分號結(jié)束,即使是程序中最后一條語句也應(yīng)包含分號 ;5、程序的注釋部分應(yīng)該在/*/之間,/和*之間不允許有空格。標(biāo)識符:C語言中的標(biāo)識符用于給程序中的常量,變量,函數(shù),文件指針和數(shù)據(jù)類型等命名。其構(gòu)成規(guī)則如下: C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。大小寫
2、區(qū)分 2.1 2.1 常量與變量常量與變量2.2 2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型2.3 2.3 運算符與表達(dá)式運算符與表達(dá)式2.5 2.5 輸入輸出函數(shù)輸入輸出函數(shù)C語言提供了以下一些數(shù)據(jù)類型。 3 3,后面累加,后面累加restday=restday=(enum enum ; 2.1.2 2.1.2變量變量 變量代表內(nèi)存中具有特定屬性的一個存儲單變量代表內(nèi)存中具有特定屬性的一個存儲單元,它用來存放數(shù)據(jù),也就是變量的值,在元,它用來存放數(shù)據(jù),也就是變量的值,在程序運行期間,這些值是可以改變的程序運行期間,這些值是可以改變的。 變量名實際上是以一個名字對應(yīng)代表一個地址。2.2.4 字符型數(shù)據(jù)字
3、符型數(shù)據(jù) 用一對單引號括起來的單個字符。用一對單引號括起來的單個字符。(只能包含一(只能包含一個字符)個字符) 轉(zhuǎn)義字符轉(zhuǎn)義字符(x 只占一個字節(jié))只占一個字節(jié))。如: n 換行字符型變量用來存放字符常量,注意只能放一個字符型變量用來存放字符常量,注意只能放一個字符。字符。字符變量的定義形式如下:字符變量的定義形式如下:char c1,c2;對對c1,c2賦值:賦值: c1a;c2 b ;1、字符常量、字符常量變量變量4 4、字符串常量、字符串常量 字符串常量是一對雙撇號括起來的字符序列. 合法的字符串常量:“How do you do.”, “CHINA” 結(jié)論:結(jié)論:不能把一個字符串常量賦
4、給一個字符變量。不能把一個字符串常量賦給一個字符變量。 1. 1. 語言語言的運算符有以下幾類:的運算符有以下幾類:算術(shù)運算符 (+ - * / %)關(guān)系運算符 (?。┻壿嬤\算符 (! |)單目運算符都是自右向左結(jié)合的:*&!賦值運算符 (及其+= 復(fù)合賦值)條件運算符 (?:)(從右向左結(jié)合)逗號運算符 (,)(8)指針運算符 (*和)(10)強制類型轉(zhuǎn)換運算符( (類型) )(12)下標(biāo)運算符()ab?a:cd?c:d ab?a:(cd?c:d) 1. 1. 基本的算術(shù)運算符基本的算術(shù)運算符: :符號符號功能功能例子例子+加法運算或正值運算加法運算或正值運算1+2,+9-減法運算或
5、負(fù)值運算減法運算或負(fù)值運算4-8,-8*乘法運算乘法運算5*3/除法運算除法運算4/3%取余運算取余運算7%3使用說明:1、兩個整數(shù)相除的結(jié)果為整數(shù),如4/3的結(jié)果為1,小數(shù)部分被舍去;2、%運算符要求兩個操作數(shù)都是整數(shù),否則編譯器會報錯。例如5.3%3就是錯誤的表達(dá)式。如果運算,可以先將其強制類型轉(zhuǎn)換為整數(shù),再進(jìn)行求余,如(int)(5.3)%3=2(int)(5.3)%3=2;1.關(guān)系運算符及其優(yōu)先次序 (小于) (大于)= (大于或等于)= (等于)!= (不等于)優(yōu)先級相同(高)優(yōu)先級相同(高)優(yōu)先級相同(低)優(yōu)先級相同(低)說明:說明:關(guān)系運算符的優(yōu)先級低于算術(shù)運算符關(guān)系運算符的優(yōu)先
6、級高于賦值運算符關(guān)系表達(dá)式的值是一個邏輯值,即“真”或“假”。例:關(guān)系表達(dá)式”ab”的值為“真”,表達(dá)式的值為1。C C語言中沒有專用語言中沒有專用的邏輯值,的邏輯值,1 1代表代表真,真,0 0代表假代表假1.邏輯運算符及其優(yōu)先次序& (邏輯與) 相當(dāng)于其他語言中的AND| (邏輯或) 相當(dāng)于其他語言中的OR! (邏輯非) 相當(dāng)于其他語言中的NOT例:a&b 若a,b為真,則a&b為真。 a|b 若a,b之一為真,則a|b為真。 !a 若a為真,則!a為假。優(yōu)先次序:!(非)-&(與)-|(或)邏輯運算符中 “&”和“|”低于關(guān)系運算符,“!”高于算術(shù)
7、運算符2.邏輯表達(dá)式邏輯表達(dá)式的值應(yīng)該是一個邏輯量“真”或“假”。任何非零的數(shù)值被認(rèn)作任何非零的數(shù)值被認(rèn)作“真真”a的值為的值為3,b的值為的值為9時,邏輯表達(dá)式時,邏輯表達(dá)式a=6&a+b8的值為的值為_1_。 &和和|運算的求值順序(掌握?。┻\算的求值順序(掌握!)在邏輯表達(dá)式的求解中,并不是所有的邏輯運算符都要被執(zhí)行。在邏輯表達(dá)式的求解中,并不是所有的邏輯運算符都要被執(zhí)行。(1)a&b&c (1)a&b&c 只有只有a a為真時,才需要判斷為真時,才需要判斷b b的值,只有的值,只有a a和和b b都為真時,都為真時, 才需要判斷才需要判斷
8、c c的值。的值。(2)a|b|c (2)a|b|c 只要只要a a為真,就不必判斷為真,就不必判斷b b和和c c的值,只有的值,只有a a為假,才為假,才 判斷判斷b b。a a和和b b都為假才判斷都為假才判斷c c。c值不為0時,在下列選項中能正確將c的值賦給變量a、b的是_A、c=b=a; B、(a=c) | (b=c);C、(a=c)&(b=c); D、a=c=b; ! !非非 高高 算術(shù)運算符算術(shù)運算符關(guān)系運算符關(guān)系運算符 & & | |賦值運算符賦值運算符優(yōu)先級關(guān)系優(yōu)先級關(guān)系 低低逗號運算符逗號運算符: :將兩個表達(dá)式連接起來,又稱為“順序求值運算符”。
9、 一般形式一般形式: : 表達(dá)式,表達(dá)式表達(dá)式,表達(dá)式求解過程:求解過程: 先求解表達(dá)式,再求解表達(dá)式。整個逗號先求解表達(dá)式,再求解表達(dá)式。整個逗號表達(dá)式的值是表達(dá)式的值。表達(dá)式的值是表達(dá)式的值。 已知int x=40,y=20,z=10; 以下語句執(zhí)行后x,y,z的值是( )if(xy) ;z=x, x=y, y=z; 2.3.7 2.3.7 自增、自減運算符(自右向左)自增、自減運算符(自右向左) 作用是使變量的值增或減僅用于整型變量和指針變量如如:,(在使用之前,先使的值加(減),(在使用之后,使的值加(減) + + 自增1 自減1Ex:i = 0; a = 0;a = i+;a = +
10、i;*p+ +與與*優(yōu)先級相同,自右向左結(jié)合優(yōu)先級相同,自右向左結(jié)合 先看先看p+,但是,但是+運算符需要先對運算符需要先對p操作,所以先取操作,所以先取*p, p再再+1若若b為為float型變量,且已賦值型變量,且已賦值8.79452,能正確使,能正確使b中的值保持兩位小數(shù)中的值保持兩位小數(shù),刪去此后小數(shù)的語句是,刪去此后小數(shù)的語句是( c ) b=b*100/100 b=(int)b*100/100.0; b=(int)(b*100)/100.0 b=int (b)*100/100.0 C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實現(xiàn)的例如例如: :字符輸入函數(shù):g
11、etchar字符輸出函數(shù):putchar格式輸入函數(shù): scanf 格式輸出函數(shù): printf字符串輸入函數(shù):gets 字?jǐn)?shù)穿輸出函數(shù):puts C語言提供的選擇結(jié)構(gòu)有兩種:語言提供的選擇結(jié)構(gòu)有兩種:if語句、語句、switch語句。語句。 3.1 選擇結(jié)構(gòu)選擇結(jié)構(gòu)3.3.1 if3.3.1 if語句語句 if if語句:對所給條件進(jìn)行判定,根據(jù)判定結(jié)語句:對所給條件進(jìn)行判定,根據(jù)判定結(jié)果決定是否執(zhí)行程序段。果決定是否執(zhí)行程序段。 語句形式:語句形式: if (if (表達(dá)式表達(dá)式) ) 語句語句 ; 語句執(zhí)行流程:語句執(zhí)行流程: 表達(dá)式語句真(非0)假(0)語句形式:語句形式: switc
12、h (表達(dá)式)(表達(dá)式) case 常量常量1: 語句語句 1; case 常量常量2: 語句語句2; case 常量常量3: 語句語句3; . case 常量常量n: 語句語句n; default : 語句語句n+1; 。數(shù)值型枚舉型字符型常量表達(dá)式的值必須互不相同,否則執(zhí)行時將出現(xiàn)矛盾,即同一個開關(guān)值,將對應(yīng)多種執(zhí)行方案。千萬不能接(;)號3.1.5 switch 3.1.5 switch 語句語句if (if (表達(dá)式)表達(dá)式) 語句語句1 1; else else 語句語句2 2; 表達(dá)式語句1真(非0)假(0)語句23.3.2 if-else 3.3.2 if-else 語句語句 i
13、f-else if-else 語句適合于解決雙分支選擇問題語句適合于解決雙分支選擇問題elseelse與上邊一個與上邊一個ifif配對配對語句形式:語句形式:語句執(zhí)行流程:語句執(zhí)行流程: 條件條件 語句語句1 語句語句2YN 在在C語言中有三種循環(huán)結(jié)構(gòu):語言中有三種循環(huán)結(jié)構(gòu):while,do-while和和for循環(huán)。循環(huán)。 構(gòu)成有效循環(huán)的條件:循環(huán)體構(gòu)成有效循環(huán)的條件:循環(huán)體和循環(huán)結(jié)束條件。和循環(huán)結(jié)束條件。whilewhile語句用來實現(xiàn)語句用來實現(xiàn)“當(dāng)型當(dāng)型”循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)。一般形式:一般形式: while (while (表達(dá)式表達(dá)式) ) 語句語句 當(dāng)表達(dá)式為非當(dāng)表達(dá)式為非0 0值時
14、,執(zhí)行值時,執(zhí)行 whilewhile語句中的內(nèi)嵌語句。語句中的內(nèi)嵌語句。其特其特 點是點是: :先判斷表達(dá)式,后執(zhí)行語先判斷表達(dá)式,后執(zhí)行語 句。句。 do-whiledo-while語句的特點語句的特點: :先執(zhí)行循環(huán)體,然后判斷循先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。環(huán)條件是否成立。 一般形式一般形式: : do do 循環(huán)體語句 whilewhile (表達(dá)式); 執(zhí)行過程:執(zhí)行過程:先執(zhí)行一次指定的循環(huán)體語句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非零(“真”) 時,返回重新執(zhí)行循環(huán)體語句,如此反復(fù),直到表達(dá)式的值等于0為止,此時循環(huán)結(jié)束。本行的分號不本行的分號不能缺省能缺省int a=1
15、0;docout#;while(a-); 一般形式一般形式: : for(for(表達(dá)式表達(dá)式1 1;表達(dá)式;表達(dá)式2 2;表達(dá)式;表達(dá)式3) 3) 語句語句表達(dá)式1:用于循環(huán)開始前為循環(huán)變量設(shè)置初始值。表達(dá)式2:控制循環(huán)執(zhí)行的條件,決定循環(huán)次數(shù)表達(dá)式3:循環(huán)控制變量修改表達(dá)式。循環(huán)體語句:被重復(fù)執(zhí)行的語句,每執(zhí)行一次,表達(dá)式3就改變一次循環(huán)變量的值,直到表達(dá)式2條件不再滿足。 forfor語句的執(zhí)行過程:語句的執(zhí)行過程: (1) 先求解表達(dá)式1。 (2) 求解表達(dá)式2,若其值為真(值為非0),則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行下面第(3)步。若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第(5)
16、步。 (3) 求解表達(dá)式3。 (4) 轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。 (5) 循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句。 1. 問題的提出問題的提出 假設(shè)我們將假設(shè)我們將26個數(shù)分別存放在個數(shù)分別存放在26個變量中,要個變量中,要計算計算26個變量個變量的的和和,如何做如何做? 將將26個變量逐個加起來?個變量逐個加起來? 能否使用循環(huán)語句能否使用循環(huán)語句? for(sum=0,i=0;i26;i+) sum=sum+i; 正確嗎正確嗎?4.1 4.1 數(shù)組的概念數(shù)組的概念2. 使用數(shù)組解決問題(掌握?。┦褂脭?shù)組解決問題(掌握?。┒x一個變量,包含定義一個變量,包含26個數(shù)據(jù),稱為數(shù)組變量。個數(shù)
17、據(jù),稱為數(shù)組變量。main() int i,sum=0, a26 ; for(i=0;i26;i+) scanf(“%d”,&ai); for(i=0;i26;i+) sum=sum+ai; printf(%d,sum); C語言為這些數(shù)據(jù),語言為這些數(shù)據(jù),提供了一種構(gòu)造數(shù)據(jù)提供了一種構(gòu)造數(shù)據(jù)類型:數(shù)組。類型:數(shù)組。所謂數(shù)所謂數(shù)組組就是一組具有相同就是一組具有相同數(shù)據(jù)類型的數(shù)據(jù)的有數(shù)據(jù)類型的數(shù)據(jù)的有序集合。這些數(shù)據(jù)被序集合。這些數(shù)據(jù)被稱為稱為數(shù)組的元素數(shù)組的元素。4.2 4.2 一維數(shù)組的定義和引用一維數(shù)組的定義和引用4.2.1 4.2.1 一維數(shù)組的定義一維數(shù)組的定義1、定義一維數(shù)組
18、的一般方式:、定義一維數(shù)組的一般方式: 類型說明符類型說明符 數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式 ; ;指明數(shù)組元素指明數(shù)組元素的數(shù)據(jù)類型的數(shù)據(jù)類型指明數(shù)組所含的元素指明數(shù)組所含的元素個數(shù),下標(biāo)從個數(shù),下標(biāo)從 0 開始開始常量表達(dá)式說明數(shù)組元素的個數(shù),必須是大于常量表達(dá)式說明數(shù)組元素的個數(shù),必須是大于0的整型常量的整型常量表達(dá)式(包括常量和符號常量)。不允許是變量,不能進(jìn)行表達(dá)式(包括常量和符號常量)。不允許是變量,不能進(jìn)行動態(tài)定義。動態(tài)定義。方法:將初值依次寫在花括號方法:將初值依次寫在花括號 內(nèi)。內(nèi)。如:如: int a5= 2 , 4 , 6 , 8 , 10 ;說明:說明:(1) 只給
19、數(shù)組中部分元素賦初值,其他元素按零只給數(shù)組中部分元素賦初值,其他元素按零處理。處理。 如:如: int a9=1,2; 則則 a0= 1, a1= 2, a2a8值全為值全為0。(2) 對數(shù)組元素全部置。對數(shù)組元素全部置。 int a5= 0, 0, 0, 0, 0 ; 或:或:int a5=0;4.2.3 4.2.3 引用一維數(shù)組元素引用一維數(shù)組元素1.1.數(shù)組元素的表示形式:數(shù)組元素的表示形式: 數(shù)組名下標(biāo)z當(dāng)數(shù)組的元素類型為字符型時,被稱為當(dāng)數(shù)組的元素類型為字符型時,被稱為字符字符數(shù)組數(shù)組。 如:如: char c10; 則則c為字符數(shù)組。為字符數(shù)組。z字符數(shù)組的定義、初始化和元素的引用
20、與一字符數(shù)組的定義、初始化和元素的引用與一般的數(shù)組相同。般的數(shù)組相同。 字符數(shù)組字符數(shù)組4.4.1 4.4.1 字符數(shù)組的定義字符數(shù)組的定義4.4.4 4.4.4 字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出 字符數(shù)組的輸入輸出可以有兩種方法:字符數(shù)組的輸入輸出可以有兩種方法: 逐個字符輸入輸出。用格式符逐個字符輸入輸出。用格式符“%c”%c”輸入或輸出輸入或輸出一個字符。一個字符。 將整個字符串一次輸入或輸出。用將整個字符串一次輸入或輸出。用“%s”%s”格式符,格式符,意思是對字符串的輸入輸出。意思是對字符串的輸入輸出。 假設(shè)有定義假設(shè)有定義 char a10;1.1.用格式符用格式符“%c%c”
21、逐個字符逐個字符輸入輸出輸入輸出: : scanf( scanf(“%c%c”,&a0);,&a0); printf( printf(“%c%c”,a0); ,a0); /*每次輸入輸出一個字符*/2. 用格式符“%s”整個字符串輸入輸出:例 用%s main() char str5; scanf(“%s”, str); printf(“%s”, str);用字符數(shù)組名用字符數(shù)組名,不要加不要加&輸入串長度輸入串長度 數(shù)組長度數(shù)組長度遇遇0結(jié)束結(jié)束, 但但輸出字輸出字符不包括結(jié)束符符不包括結(jié)束符01. puts1. puts函數(shù)函數(shù)其一般形式為其一般形式為: : put
22、s (puts (字符數(shù)組字符數(shù)組) )其作用是將一個字符串其作用是將一個字符串( (以以00結(jié)束的字符序列結(jié)束的字符序列) )輸出到終端。輸出到終端。4.4.5 4.4.5 字符串處理函數(shù)字符串處理函數(shù)2. gets2. gets函數(shù)函數(shù)其一般形式為:其一般形式為:gets(gets(字符數(shù)組字符數(shù)組) )其作用是從終端輸入一個字符串到字符數(shù)組,其作用是從終端輸入一個字符串到字符數(shù)組,并且得到一個函數(shù)值。該函數(shù)值是字符數(shù)組的并且得到一個函數(shù)值。該函數(shù)值是字符數(shù)組的起始地址。起始地址。3. strlen函數(shù)函數(shù) 其一般形式為其一般形式為:strlen (字符數(shù)組字符數(shù)組) strlen str
23、len是測試字符串長度的函數(shù)。函數(shù)的值為是測試字符串長度的函數(shù)。函數(shù)的值為字符串中的實際長度字符串中的實際長度( (不包括不包括00在內(nèi)在內(nèi)) )。#include #include #define Size 100main() char strSize; int len,i, letter=0,digit=0,space=0,other=0; printf(please input a stringn); gets(str); len=strlen(str); for( i=0;i=a & stri = A & stri = 0 & stri =9) digit+;
24、else if(stri = ) space+; else other+; printf(%d lettersn%d digitn%d spacen%d othern,letter,digit,space,other);例例4-10 輸入一行字符,統(tǒng)計其中英文字符、數(shù)字、空格及其他字符的個數(shù)。輸入一行字符,統(tǒng)計其中英文字符、數(shù)字、空格及其他字符的個數(shù)。 5.1 5.1 地址和指針的概念地址和指針的概念 5.2 5.2 變量的指針和指向變量的指針變量變量的指針和指向變量的指針變量 5.3 5.3 通過指針引用數(shù)組通過指針引用數(shù)組 5.4 5.4 通過指針引用字符串通過指針引用字符串5.2.1 5
25、.2.1 怎樣定義指針變量怎樣定義指針變量定義指針變量的一般形式為:基類型基類型 *指針變量名;指針變量名;1)定義并初始化指針變量)定義并初始化指針變量int i=3;int *p = &i;2)定義指針變量,將變量地址賦值給指針變量)定義指針變量,將變量地址賦值給指針變量int i=3;int *p; p = &i; 有關(guān)的兩個運算符:有關(guān)的兩個運算符: 取地址運算符。取地址運算符。 &a是變量是變量a的地址。的地址。 * 取內(nèi)容運算符(或稱取內(nèi)容運算符(或稱“間接訪問間接訪問”運算符)。運算符)。*p是指針變量是指針變量p指向的對象的值。指向的對象的值。 *運算符
26、與運算符與&運算符的優(yōu)先級相同,且都是運算符的優(yōu)先級相同,且都是“右結(jié)右結(jié)合合”。*p=.中的中的*與指針變量定義中的與指針變量定義中的*是不同是不同的。的。例如:例如: int x,*px=&x; 則則 &(*px) : 表示指針表示指針px(取指針的目標(biāo)變量(取指針的目標(biāo)變量 *px(即變量即變量x)的地址)的地址) *(&x) : 表示變量表示變量x(取變量(取變量x的地址中所的地址中所 存儲的內(nèi)容)存儲的內(nèi)容) 語言規(guī)定在指針指向數(shù)組元素時,可以對指針語言規(guī)定在指針指向數(shù)組元素時,可以對指針進(jìn)行以下運算:進(jìn)行以下運算: 加一個整數(shù)加一個整數(shù)(用用+或或+
27、=),如,如p+1 減一個整數(shù)減一個整數(shù)(用用-或或-=),如,如p-1 自加運算,如自加運算,如p+,+p 自減運算,如自減運算,如p-,-p *(p+)和和*(+p)5.2.4 5.2.4 指針的運算指針的運算若若p指向變量指向變量x,則:,則: (*p)+; 相當(dāng)于相當(dāng)于 x+。 +(*p); 相當(dāng)于相當(dāng)于 +x。 .3 .3 通過指針引用數(shù)組通過指針引用數(shù)組在在C語言中,語言中,數(shù)組名數(shù)組名代表該數(shù)組的首代表該數(shù)組的首地址,即數(shù)組中第一個元素的地址,也稱地址,即數(shù)組中第一個元素的地址,也稱為該為該數(shù)組的指針數(shù)組的指針。每一個數(shù)組元素也有一。每一個數(shù)組元素也有一個地址,稱為該元素的指針。
28、個地址,稱為該元素的指針。5.3.1 5.3.1 數(shù)組元素的指針數(shù)組元素的指針例如:例如:int a10; (定義定義a為包含為包含10個整型數(shù)據(jù)的數(shù)組個整型數(shù)據(jù)的數(shù)組) int *p; (定義為指向整型變量的指針變量定義為指向整型變量的指針變量) p&a0;和和p=a;是等價的;是等價的(把把a0元素的地址賦給指針變量元素的地址賦給指針變量p,即使指向,即使指向數(shù)組的第號元素數(shù)組的第號元素 。 ) 同理,同理,p=a+1;和和p=&a1;兩個語句也是等價的。;兩個語句也是等價的。它們的作用是把數(shù)組它們的作用是把數(shù)組a中第二個元素中第二個元素a1的地址賦給指的地址賦給指針變量針
29、變量p。 以此類推,以此類推,若指針變量若指針變量p=a,下面三個表達(dá)式等價,下面三個表達(dá)式等價 p+i a+i &ai (它們均表示第(它們均表示第i個元素的地址個元素的地址 )5.3.2 5.3.2 引用數(shù)組元素引用數(shù)組元素( (綜合綜合!) !) 引用一個數(shù)組元素,可以用:()() 下標(biāo)法,如形式;下標(biāo)法,如形式;()() 指針法,如指針法,如*()或()或*()()。其中是數(shù)組名,是指向數(shù)組元素的指針變量,其初值。例:例: 輸出數(shù)組中的全部元素輸出數(shù)組中的全部元素 假設(shè)有一個數(shù)組,整型,有個元素。要輸出各元素的值有三種方法: 形式形式意義意義p+i , a+i表示表示ai的地址
30、,指向數(shù)組的第的地址,指向數(shù)組的第i個個元素元素*(p+i) ,* (a+i)表示表示p+i和和a+i所指對象的內(nèi)容,即所指對象的內(nèi)容,即aipi表示表示*(p+i) ,即通過帶下標(biāo)的指針,即通過帶下標(biāo)的指針引用數(shù)組元素,等價于引用數(shù)組元素,等價于ai(3) 用指針變量指向數(shù)組元素。用指針變量指向數(shù)組元素。#include void main() int a10; int *p=a; for(;pa+10;p+) scanf(%d,p); printf(n); for(p=a;pa+10;p+) printf(%d ,*p); int a10,i,*p; p=a; for(i=0;i10;i+
31、) scanf(%d,p+i); printf(n); for(i=0;i10;i+) printf(%d ,*(p+i);a和和a0具有不同含意。具有不同含意。前者是一個地址常量前者是一個地址常量,是存儲單元,是存儲單元a0的地址;的地址;而而后者是一個變量后者是一個變量名,代表一個存放數(shù)據(jù)的存儲單元名,代表一個存放數(shù)據(jù)的存儲單元。p是地址變量是地址變量,它可以指向任何地址變量,因,它可以指向任何地址變量,因此,可以對其進(jìn)行加、減和賦值運算。此,可以對其進(jìn)行加、減和賦值運算。 p+; p=a; p=&ai ; 是合法的。是合法的。而由于而由于數(shù)組名數(shù)組名a代表一個地址常量代表一個地址
32、常量,其,其值是不值是不能改變的能改變的,因此,因此,a+; a=p; a+=i; 是非法的是非法的 當(dāng)把一個字符串賦給一個字符指針變量時當(dāng)把一個字符串賦給一個字符指針變量時,是把該字符串的首地址賦給了指針變量,是把該字符串的首地址賦給了指針變量。 例如:例如:char *str=“Hello!; 1、數(shù)組名是地址常量,不能重新賦值。、數(shù)組名是地址常量,不能重新賦值。 char str =Hello!; 或或 char str20; str=“Hello!”; /把一個字符串賦給數(shù)組名是錯誤的。把一個字符串賦給數(shù)組名是錯誤的。2、可將一個字符串常量賦值給一個字符指針變量。、可將一個字符串常量賦
33、值給一個字符指針變量。 char *str=Hello!; 或或 char *str; str=“Hello!”; 程序運行后,輸出結(jié)果是程序運行后,輸出結(jié)果是_Void main( )char *p=abcdefg;p+=3; printf(%sn,p);本章要點6.1.2 6.1.2 函數(shù)的定義函數(shù)的定義1 1、定義函數(shù)的一般形式為、定義函數(shù)的一般形式為:類型標(biāo)識符類型標(biāo)識符 函數(shù)名函數(shù)名(形式參數(shù)表列)(形式參數(shù)表列) 聲明部分聲明部分 / /* *函數(shù)體變量說明語句 * */ / 語句部分語句部分 / /* *函數(shù)體執(zhí)行語句*/ 類型標(biāo)識符類型標(biāo)識符 參數(shù)參數(shù)1 ,類型標(biāo)識符類型標(biāo)識符
34、 參數(shù)參數(shù)2, 函數(shù)的定義不能嵌套定義函數(shù)的定義不能嵌套定義。(1) 如果被調(diào)用函數(shù)放在調(diào)用函數(shù)之前定義。如果被調(diào)用函數(shù)放在調(diào)用函數(shù)之前定義。 例如:/*被調(diào)函數(shù)*/ int fun1(int a2,int b2,int c2,. ) main( ) fun1(a1,b1,c2,. ); /*調(diào)用函數(shù)調(diào)用函數(shù)*/ (2) 在調(diào)用函數(shù)內(nèi)聲明。在調(diào)用函數(shù)內(nèi)聲明。例如: main( ) int fun1(int a2,int b2,int c2,. ) ;/*函數(shù)聲明函數(shù)聲明*/ fun1(a1,b1,c2,. ); /*函數(shù)調(diào)用函數(shù)調(diào)用*/ int fun1(int a2,int b2,int c
35、2,. ) /*函數(shù)定義函數(shù)定義*/ (3) 如果文件開頭對所調(diào)用的函數(shù)進(jìn)行了聲明,則各如果文件開頭對所調(diào)用的函數(shù)進(jìn)行了聲明,則各函數(shù)中不必對所調(diào)用函數(shù)再作聲明函數(shù)中不必對所調(diào)用函數(shù)再作聲明 。例如: int fun1(int a2,int b2,int c2,. ) ;/*函數(shù)聲明函數(shù)聲明*/ main( ) fun1(a1,b1,c2,. ); /*函數(shù)調(diào)用函數(shù)調(diào)用*/ int fun1(int a2,int b2,int c2,. ) /*函數(shù)定義函數(shù)定義*/ 6.2.4 6.2.4 函數(shù)的返回值函數(shù)的返回值函數(shù)的返回值函數(shù)的返回值是通過函數(shù)調(diào)用使主調(diào)函數(shù)得到的確定值。注意:注意:凡不加類型說明的函數(shù),自動按整型處理。凡不加類型說明的函數(shù),自動按整型處理。說明:說明: 1.函數(shù)的返回值是通過函數(shù)中的return語句獲得的。return語句后面的括弧也可以不要語句后面的括弧也可以不要例如例如: “return ;” 等價于等
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省蘇州市梁豐2024-2025學(xué)年初三下學(xué)期(開學(xué))考試化學(xué)試題試卷含解析
- 山東省煙臺芝罘區(qū)六校聯(lián)考2024-2025學(xué)年初三5月份考前模擬適應(yīng)性聯(lián)合考試化學(xué)試題試卷含解析
- 沈陽工業(yè)大學(xué)《云計算與虛擬化技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧省遼河油田第二中學(xué)2025屆高三高考信息卷(一)物理試題含解析
- 長沙市重點中學(xué)2025年高三4月聯(lián)考?xì)v史試題試卷含解析
- 寧夏中衛(wèi)市名校2024-2025學(xué)年高中畢業(yè)班3月復(fù)習(xí)教學(xué)質(zhì)量檢測試題(二)英語試題含答案
- 山西省右玉縣重點達(dá)標(biāo)名校2024-2025學(xué)年初三5月三校聯(lián)考化學(xué)試題試卷含解析
- 上海市徐匯區(qū)2025年數(shù)學(xué)四年級第二學(xué)期期末復(fù)習(xí)檢測試題含解析
- 山東省濱州市濱城區(qū)北城英才學(xué)校2025年三下數(shù)學(xué)期末考試試題含解析
- 短期護(hù)士雇傭合同2025年
- 采油工程 試題及答案
- 西醫(yī)臨床基因組學(xué)應(yīng)用試題及答案
- 內(nèi)河船客運培訓(xùn)課件
- 2023-2029年中國雞尾酒行業(yè)市場運行態(tài)勢及投資戰(zhàn)略規(guī)劃報告
- 2024年記者證考試挑戰(zhàn)試題及答案
- 2025年刑法模擬檢測試卷(罪名認(rèn)定與刑罰適用)
- 健康廚房-家庭飲食指南
- 初中生物重要識圖填空速記54個-2025年中考生物一輪復(fù)習(xí)知識清單
- T-SCCX A 0010-2024 T-CQXS A 0001-2024 信息技術(shù)應(yīng)用創(chuàng)新項目建設(shè)規(guī)范
- 合作合同范本 英文
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 政治試卷(含標(biāo)準(zhǔn)答案)
評論
0/150
提交評論