版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)應(yīng)用教程內(nèi)容三C語(yǔ)言基礎(chǔ)知識(shí)C語(yǔ)言是單片機(jī)程序開(kāi)發(fā)的常用語(yǔ)言。和匯編語(yǔ)言相比具有可閱讀性強(qiáng),編寫(xiě)簡(jiǎn)單,易掌握等優(yōu)點(diǎn)。單片機(jī)用的C語(yǔ)言采用ANSIC語(yǔ)言標(biāo)準(zhǔn),同時(shí)在此基礎(chǔ)上作了擴(kuò)充。一C語(yǔ)言基本結(jié)構(gòu)及特點(diǎn)1.C語(yǔ)言的發(fā)展過(guò)程2.當(dāng)代最優(yōu)秀的程序設(shè)計(jì)語(yǔ)言3.目前最流行的C語(yǔ)言MicrosoftC或稱(chēng)
MSCBorlandTurboC或稱(chēng)
TurboCAT&TC4.C語(yǔ)言的特點(diǎn)①
C語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。②運(yùn)算符豐富。共有34種。③數(shù)據(jù)結(jié)構(gòu)類(lèi)型豐富。④具有結(jié)構(gòu)化的控制語(yǔ)句。⑤語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。一C語(yǔ)言基本結(jié)構(gòu)及特點(diǎn)4.C語(yǔ)言的特點(diǎn)⑥C語(yǔ)言允許直接訪問(wèn)物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。⑦生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。⑧與匯編語(yǔ)言相比,用C語(yǔ)言寫(xiě)的程序可移植性好。
5.簡(jiǎn)單的C程序介紹6.C源程序的結(jié)構(gòu)特點(diǎn)①一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。②每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成。③一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù)。一C語(yǔ)言基本結(jié)構(gòu)及特點(diǎn)6.C源程序的結(jié)構(gòu)特點(diǎn)④源程序中可以有預(yù)處理命令(include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。⑤每一個(gè)說(shuō)明,每一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“}”之后不能加分號(hào)。⑥標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來(lái)間隔。7.書(shū)寫(xiě)程序時(shí)應(yīng)遵循的規(guī)則①一個(gè)說(shuō)明或一個(gè)語(yǔ)句占一行。②用{}括起來(lái)的部分,通常表示了程序的某一層次結(jié)構(gòu)。③低一層次的語(yǔ)句或說(shuō)明可比高一層次的語(yǔ)句或說(shuō)明縮進(jìn)若干格后書(shū)寫(xiě)。一C語(yǔ)言基本結(jié)構(gòu)及特點(diǎn)8.C語(yǔ)言的字符集①字母
小寫(xiě)字母a~z共26個(gè)
大寫(xiě)字母A~Z共26個(gè)②數(shù)字
0~9共10個(gè)③空白符空格符、制表符、換行符等統(tǒng)稱(chēng)為空白符。④
標(biāo)點(diǎn)和特殊字符9.C語(yǔ)言詞匯①標(biāo)識(shí)符在程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱(chēng)為標(biāo)識(shí)符。一C語(yǔ)言基本結(jié)構(gòu)及特點(diǎn)9.C語(yǔ)言詞匯①標(biāo)識(shí)符
C規(guī)定,標(biāo)識(shí)符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線(_)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。以下標(biāo)識(shí)符是合法的:
a,x,x3,BOOK_1,sum5以下標(biāo)識(shí)符是非法的:
3s以數(shù)字開(kāi)頭
s*T出現(xiàn)非法字符*
-3x以減號(hào)開(kāi)頭bowy-1出現(xiàn)非法字符-(減號(hào))一C語(yǔ)言基本結(jié)構(gòu)及特點(diǎn)9.C語(yǔ)言詞匯②關(guān)鍵字
關(guān)鍵字是由C語(yǔ)言規(guī)定的具有特定意義的字符串,通常也稱(chēng)為保留字用。C語(yǔ)言的關(guān)鍵字分為以下幾類(lèi):類(lèi)型說(shuō)明類(lèi)語(yǔ)句定義類(lèi)預(yù)處理命令類(lèi)③運(yùn)算符④分隔符⑤常量⑥注釋符二C語(yǔ)言數(shù)據(jù)及運(yùn)算1.數(shù)據(jù)類(lèi)型①C的數(shù)據(jù)類(lèi)型二C語(yǔ)言數(shù)據(jù)及運(yùn)算1.數(shù)據(jù)類(lèi)型②基本類(lèi)型的名字和長(zhǎng)度下列關(guān)鍵字稱(chēng)為類(lèi)型區(qū)分符:char、
int、
short、
long、
signed、unsigned、float、double2.常量和變量①常量的表示
C的常量有整數(shù)常量、浮點(diǎn)常量、字符常量、字符串常量和枚舉常量。整數(shù)
整數(shù)有三種形式:十進(jìn)制整數(shù)、八進(jìn)制整數(shù)和十六進(jìn)制整數(shù)。浮點(diǎn)數(shù)
單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù)、高精度浮點(diǎn)數(shù)二C語(yǔ)言數(shù)據(jù)及運(yùn)算字符常量
字符常數(shù)通常是指一對(duì)單引號(hào)(單撇號(hào))括起來(lái)的一個(gè)字符,形式為:‘字符’字符串常量
字符串常數(shù)(簡(jiǎn)稱(chēng)字符串)是用一對(duì)雙引號(hào)括起來(lái)的一個(gè)字符序列,其字符的個(gè)數(shù)稱(chēng)為字符串長(zhǎng)度。形式為:“字符序列”符號(hào)常量
三種方法定義一個(gè)符號(hào)常量:一種是利用編譯預(yù)處理的宏替換功能#define;另一種是用const類(lèi)型限定符說(shuō)明并初始化一個(gè)標(biāo)識(shí)符;第三種方法是通過(guò)定義枚舉類(lèi)型來(lái)定義符號(hào)常量。二C語(yǔ)言數(shù)據(jù)及運(yùn)算2.變量說(shuō)明
C程序中任何變量必須遵循現(xiàn)說(shuō)明后引用的原則,以便編譯程序?yàn)樽兞糠峙溥m當(dāng)長(zhǎng)度的存儲(chǔ)單元以及確定變量所允許的運(yùn)算。變量說(shuō)明的形式:類(lèi)型區(qū)分符
變量表。給變量賦初值有兩種方式:一是通過(guò)賦值語(yǔ)句置初值(如i=0;);另一個(gè)方式是在變量說(shuō)明時(shí)給出初值稱(chēng)為初始化。格式為:
類(lèi)型區(qū)分符
變量名=表達(dá)式,…;如:intage=15,index=1,i=0,j=0;二C語(yǔ)言數(shù)據(jù)及運(yùn)算3.運(yùn)算符與表達(dá)式
由運(yùn)算符通過(guò)對(duì)運(yùn)算對(duì)象(操作數(shù))進(jìn)行各種操作,按操作數(shù)的數(shù)目可將運(yùn)算符分為:?jiǎn)文浚ㄒ辉?,雙目(二元)和三目(三元)運(yùn)算符;按運(yùn)算符的功能分類(lèi)有:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、自增和自減運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符和條件運(yùn)算符。另外還有數(shù)組的下標(biāo)[]、函數(shù)調(diào)用()、表順序求值的逗號(hào)運(yùn)算符和類(lèi)型強(qiáng)制運(yùn)算符等。
表達(dá)式是由運(yùn)算符、操作符數(shù)組成的符合C的語(yǔ)法算式。從本質(zhì)上說(shuō),表達(dá)式是對(duì)運(yùn)算規(guī)則的描述并按規(guī)則執(zhí)行運(yùn)算,運(yùn)算的結(jié)果是一個(gè)值,稱(chēng)為表達(dá)式的值,其類(lèi)型稱(chēng)為表達(dá)式的類(lèi)型。二C語(yǔ)言數(shù)據(jù)及運(yùn)算3.運(yùn)算符與表達(dá)式①算術(shù)運(yùn)算
算術(shù)運(yùn)算符包括﹢、﹣、++、--、*、/、%②關(guān)系運(yùn)算關(guān)系運(yùn)算符包括
<(小于)
<=(小于等于)
>(大于)
>=
(大于等于)
==(等于)
!=(不等)③邏輯運(yùn)算邏輯運(yùn)算符包括:&&(與)
||(或)
?。ǚ牵茏栽龊妥詼p運(yùn)算自增和自減運(yùn)算符包括:++(增1)--(減1)二C語(yǔ)言數(shù)據(jù)及運(yùn)算3.運(yùn)算符與表達(dá)式⑤位運(yùn)算位運(yùn)算符是指
~(求反)
&(按位與)
|
(按位或) ^(按位加、異或)
>>(右移)
<<(左移)⑥簡(jiǎn)單賦值
簡(jiǎn)單賦值運(yùn)算符“=”⑦復(fù)合賦值復(fù)合賦值運(yùn)算符包括+=-=*=/=%=&=|=^=<<=和>>=⑧條件運(yùn)算條件運(yùn)算符(?:)是一個(gè)三元運(yùn)算符,一般形式為
操作數(shù)1?操作數(shù)2:操作數(shù)3三C語(yǔ)言基本語(yǔ)句1.語(yǔ)句綜述
C語(yǔ)言提供的語(yǔ)句主要有說(shuō)明語(yǔ)句和執(zhí)行語(yǔ)句,其中執(zhí)行語(yǔ)句包括空語(yǔ)句、表達(dá)式語(yǔ)句、控制語(yǔ)句、復(fù)合語(yǔ)句等,它們構(gòu)成了程序的三種程序控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。2.順序結(jié)構(gòu)
C語(yǔ)言中的順序結(jié)構(gòu)主要由說(shuō)明語(yǔ)句、表達(dá)式語(yǔ)句、空語(yǔ)句以及復(fù)合語(yǔ)句組成。在順序結(jié)構(gòu)程序中,各語(yǔ)句(或命令)是按照位置的先后次序順序執(zhí)行的,且每個(gè)語(yǔ)句都會(huì)被執(zhí)行到。順序結(jié)構(gòu)流程圖:三C語(yǔ)言基本語(yǔ)句main(){inta,b,t;scanf("%d%d",&a,&b);/*提供數(shù)據(jù)*/t=a;a=b;b=t;/*運(yùn)算*/printf("%d%d",a,b);/*輸出*/}順序結(jié)構(gòu)結(jié)構(gòu)圖三C語(yǔ)言基本語(yǔ)句3.選擇結(jié)構(gòu)①簡(jiǎn)單的if語(yǔ)句if(表達(dá)式)語(yǔ)句②if…..else語(yǔ)句if(表達(dá)式)
語(yǔ)句1else
語(yǔ)句2三C語(yǔ)言基本語(yǔ)句3.選擇結(jié)構(gòu)③系列if….else語(yǔ)句if(條件1)語(yǔ)句1elseif(條件2)語(yǔ)句2…..elseif(條件n)語(yǔ)句nelse語(yǔ)句n+1三C語(yǔ)言基本語(yǔ)句3.選擇結(jié)構(gòu)(程序示例)
輸入任意一個(gè)整數(shù),輸出該整數(shù)的絕對(duì)值main(){intn;scanf(“%d”,&n);if(n>=0)printf(“%d”,n);elseprintf(“%d”,-n);}
三C語(yǔ)言基本語(yǔ)句3.選擇結(jié)構(gòu)(程序示例)
輸入一個(gè)分?jǐn)?shù),輸出其等級(jí);90分以上,打印A;80~90分,打印B;70~80分,打印C;60~70分,打印D;60分以下,打印E。#include<stdio.h>Voidmain(void){inta;scanf(“%d”,&a);if(a>=90)printf(“ThescoreisA”);elseif(a>=80)printf(“ThescoreisB”);elseif(a>=70)printf(“ThescoreisC”);elseif(a>=60)printf(“ThescoreisD”);elseprintf(“ThescoreisE”);}
三C語(yǔ)言基本語(yǔ)句3.選擇結(jié)構(gòu)④switch語(yǔ)句(不帶break語(yǔ)句)switch(表達(dá)式e){case常量表達(dá)式e1:語(yǔ)句1case常量表達(dá)式e2:語(yǔ)句2……..case常量表達(dá)式en:語(yǔ)句ndefault語(yǔ)句n+1}三C語(yǔ)言基本語(yǔ)句3.選擇結(jié)構(gòu)(switch程序示例)
輸入字符,判斷其百分成績(jī)范圍#include<stdio.h>Voidmain(void){chargrade;grade=getchar();switch(grade){case‘A’;printf(“90~100\n”):break;case‘B’;printf(“80~89\n”):break;case‘C’;printf(“70~79\n”):break;case‘D’;printf(“60~69\n”):break;case‘E’;printf(<60\n”):break;default}三C語(yǔ)言基本語(yǔ)句4.循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)要解決的問(wèn)題是在某一條件下,要求程序重復(fù)執(zhí)行某些語(yǔ)句或某一個(gè)模塊,這里的“條件”實(shí)際上也是一個(gè)表達(dá)式,根據(jù)表達(dá)式的兩個(gè)狀態(tài)(非0或0)決定循環(huán)是否繼續(xù)。這些被重復(fù)執(zhí)行的語(yǔ)句或模塊,稱(chēng)為循環(huán)體。為了使循環(huán)不至于變成無(wú)限循環(huán)(死循環(huán)),在執(zhí)行循環(huán)體的過(guò)程中,一定要使循環(huán)條件表達(dá)式中的變量(循環(huán)控制變量)值有所變化。一個(gè)合理的循環(huán)結(jié)構(gòu),最終會(huì)使循環(huán)條件由一個(gè)狀態(tài)變?yōu)榱硪粋€(gè)狀態(tài),使循環(huán)正常終止。循環(huán)條件所用的表達(dá)式,可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式或最終能得到非0或0值的其他表達(dá)式。三C語(yǔ)言基本語(yǔ)句4.循環(huán)結(jié)構(gòu)
在C語(yǔ)言中,主要有以下三種循環(huán)結(jié)構(gòu):while結(jié)構(gòu)do-while結(jié)構(gòu)for結(jié)構(gòu)①while語(yǔ)句while(表達(dá)式)
語(yǔ)句
三C語(yǔ)言基本語(yǔ)句4.循環(huán)結(jié)構(gòu)②do….while語(yǔ)句用do-while語(yǔ)句寫(xiě)成的循環(huán)結(jié)構(gòu)也被稱(chēng)作為“直到型”循環(huán)。
do
語(yǔ)句while(表達(dá)式);
這種結(jié)構(gòu)是先執(zhí)行循環(huán)體,然后再判斷表達(dá)式是否成立,若表達(dá)式成立,那么繼續(xù)執(zhí)行循環(huán)體,接著重新計(jì)算循環(huán)表達(dá)式中的值并判斷真假,直到循環(huán)表達(dá)式的值為0(假)時(shí)終止循環(huán)。
三C語(yǔ)言基本語(yǔ)句4.循環(huán)結(jié)構(gòu)③for語(yǔ)句
語(yǔ)法格式如下:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
語(yǔ)句表達(dá)式1:初始化表達(dá)式。通常用來(lái)設(shè)定循環(huán)變量的初始值或者循環(huán)體中任何變量的初始值,可用逗號(hào)作分隔符設(shè)置多個(gè)變量的值;表達(dá)式2:循環(huán)條件表達(dá)式;表達(dá)式3:增量表達(dá)式。
三C語(yǔ)言基本語(yǔ)句4.循環(huán)結(jié)構(gòu)(程序示例)
編程實(shí)現(xiàn)依次輸出26個(gè)大寫(xiě)字母#include<stdio.h>main(){charI;for(i=‘A’;i<=‘Z’;i++)printf(“%c”,i);printf(“\n”);}三C語(yǔ)言基本語(yǔ)句5.Break語(yǔ)句
break語(yǔ)句由關(guān)鍵字break后加分號(hào)“;”組成。前面章節(jié)介紹到switch多分支選擇結(jié)構(gòu)時(shí),曾介紹過(guò)break語(yǔ)句,它用來(lái)跳出switch結(jié)構(gòu),使程序能夠執(zhí)行該結(jié)構(gòu)下面的語(yǔ)句。在這里break語(yǔ)句被用在循環(huán)結(jié)構(gòu)中作用是跳出它所在的循環(huán)體,提前結(jié)束循環(huán),使程序的執(zhí)行流程無(wú)條件的轉(zhuǎn)移到循環(huán)結(jié)構(gòu)的下一句繼續(xù)執(zhí)行。
注意:break語(yǔ)句只能用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。
三C語(yǔ)言基本語(yǔ)句5.Break語(yǔ)句(程序示例)
編寫(xiě)一個(gè)程序,求整數(shù)m是否是素?cái)?shù)。#include<stdio.h>main(){intm,i;scanf(“%d”,&m);for(i=0;i<m;i++)while(m%i==0)break;if(i==m)printf(“%disaprimenumber.\n”,m);elseprintf(“%disnotaprimenumber.\n”,m);}三C語(yǔ)言基本語(yǔ)句6.continue語(yǔ)句
continue語(yǔ)句由continue后面加分號(hào)“;”構(gòu)成,它的作用是結(jié)束本次循環(huán),使程序回到循環(huán)條件,判斷是否提前進(jìn)入下一次循環(huán)。
需要注意break語(yǔ)句與continue語(yǔ)句之間的區(qū)別,continue語(yǔ)句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。而break語(yǔ)句則是結(jié)束循環(huán)。
四C語(yǔ)言數(shù)組1.一維數(shù)組①一維數(shù)組定義
類(lèi)型說(shuō)明數(shù)組名[常量表達(dá)式]例如:floatsheep[10];ints2007[100];一維數(shù)組的定義說(shuō)明:數(shù)組名的命名規(guī)則同與變量名相同,必須是合法的標(biāo)識(shí)符。即第一個(gè)字符應(yīng)為英文字母或下劃線。用方括號(hào)將常量表達(dá)式括起來(lái)。常量表達(dá)式定義了數(shù)組元素的個(gè)數(shù)。即數(shù)組的長(zhǎng)度。它只能是整型常量或符號(hào)常量。數(shù)組在定義之后,長(zhǎng)度是不能改變的。
四C語(yǔ)言數(shù)組一維數(shù)組的定義說(shuō)明:在數(shù)組定義時(shí),常量表達(dá)式中不允許包含變量,但在操作語(yǔ)句(即數(shù)組元素的引用)中,數(shù)組常量表達(dá)式中允許包含變量。數(shù)組下標(biāo)從0開(kāi)始。各元素在內(nèi)存中占據(jù)的地址空間是連續(xù)的。元素a[0]的地址是整個(gè)數(shù)組的首地址,緊接著是a[1]的地址,然后是a[2]的地址……依次排列。也可用數(shù)組名a表示數(shù)組的首地址,即a等價(jià)于&a[0];。
四C語(yǔ)言數(shù)組1.一維數(shù)組②一維數(shù)組的引用
數(shù)組不能整個(gè)引用,只能逐個(gè)引用數(shù)組元素,其一般格式為:
數(shù)組名[下標(biāo)]
數(shù)組的下標(biāo)可以是整型常量或整型表達(dá)式,固定從0開(kāi)始,最大的下標(biāo)是數(shù)組元素的長(zhǎng)度減1。#include<stdio.h>voidmain(){intI,n;intnum[6];for(i=0;i<=5,i++)scanf(“%d”,&num[i]);for(n=5;n>=0;num[n]);printf(“%3d”,num[n]);}
四C語(yǔ)言數(shù)組1.一維數(shù)組③一維數(shù)組的初始化
數(shù)組元素的初始化就是對(duì)所有元素賦初值。人機(jī)交互賦值在數(shù)組定義的同時(shí)賦初值inta[6]={2,3,4,5,6,7}inta[]={2,3,4,5,6,7}在定義數(shù)組以后賦值inta[5];a[0]=2;a[1]=10;a[2]=5;a[3]=7;a[4]=12
四C語(yǔ)言數(shù)組2.二維數(shù)組①二維數(shù)組的定義
類(lèi)型說(shuō)明數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]其中類(lèi)型說(shuō)明指出該二維數(shù)組各元素的數(shù)據(jù)類(lèi)型;常量表達(dá)式1為行下標(biāo),常量表達(dá)式2為列下標(biāo)。
例如:inta[3][4];floatb[5][10]
四C語(yǔ)言數(shù)組3.字符數(shù)組①字符數(shù)組的定義
類(lèi)型說(shuō)明數(shù)組名[常量表達(dá)式]如:chara[3]charb[3][4]②字符數(shù)組的初始化逐個(gè)字符給字符數(shù)組中的元素賦初值如:chara[3]={‘y’,’e’,’s’}用字符串常量為字符數(shù)組各元素賦初值如:chara[4]={“yes”}或chara[4]=“yes”
五C語(yǔ)言函數(shù)1.函數(shù)的概念C程序由一個(gè)main和任意個(gè)函數(shù)組成。函數(shù)不可嵌套定義,具有全局性、平行性,函數(shù)分為有參與無(wú)參函數(shù)。程序從main開(kāi)始執(zhí)行,最后又回到main函數(shù)結(jié)束。2.定義函數(shù)的一般形式無(wú)參函數(shù)
類(lèi)型標(biāo)識(shí)符函數(shù)名([void]){
聲明部分
語(yǔ)句}
五C語(yǔ)言函數(shù)說(shuō)明:形參全稱(chēng)為“形式參數(shù)”。形參表是用逗號(hào)分隔的一組變量說(shuō)明(即定義),包括形參的類(lèi)型和形參標(biāo)識(shí)符,其作用是指出每一個(gè)形參的類(lèi)型和形參的名稱(chēng),當(dāng)調(diào)用函數(shù)時(shí),接受來(lái)自主調(diào)函數(shù)的數(shù)據(jù),確定各參數(shù)的值
。
如:
intfunc(intx,inty)
{……}用{}括起來(lái)的部分是函數(shù)的主體,稱(chēng)為函數(shù)體。
五C語(yǔ)言函數(shù)有參數(shù)的函數(shù)
函數(shù)返回值類(lèi)型函數(shù)名(形參表說(shuō)明){
聲明語(yǔ)句
執(zhí)行語(yǔ)句}說(shuō)明:函數(shù)的類(lèi)型,是指函數(shù)返回值的類(lèi)型。當(dāng)不指明函數(shù)類(lèi)型時(shí),系統(tǒng)默認(rèn)的是int型。函數(shù)名本身也有值,它代表了該函數(shù)的入口地址,使用指針調(diào)用該函數(shù)時(shí),將用到此功能。
五C語(yǔ)言函數(shù)3.函數(shù)參數(shù)和函數(shù)的值①形式參數(shù)和實(shí)際參數(shù)形式參數(shù):函數(shù)定義時(shí)由用戶(hù)定義的形式上的變量。實(shí)際參數(shù):函數(shù)調(diào)用時(shí),主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。
按值傳遞參數(shù)——數(shù)值傳遞若實(shí)參和形參均為普通變量,則實(shí)參向形參傳送數(shù)據(jù)的方式是"按值傳遞"。等價(jià)于:
數(shù)據(jù)類(lèi)型形參變量名=實(shí)參變量名;形式參數(shù)是函數(shù)的局部變量,僅在函數(shù)內(nèi)部才有意義,不能用它來(lái)傳遞函數(shù)的結(jié)果。
五C語(yǔ)言函數(shù)按值傳遞參數(shù)——數(shù)值傳遞
例如:調(diào)用函數(shù)的數(shù)據(jù)傳遞
#include<stdio.h>intmax(intx,inty)//x和y為形參,接受來(lái)自主調(diào)函數(shù)的原始數(shù)據(jù){ intz; z=x>y?x:y; return(z);//將函數(shù)的結(jié)果返回主調(diào)函數(shù)
}main(){ inta,b,c; puts("pleaseentertwointegernumbers"); scanf("%d%d",&a,&b); c=max(a,b);//主函數(shù)內(nèi)調(diào)用功能函數(shù)max,實(shí)參為a和b printf("max=%d\n",c); return0;}
五C語(yǔ)言函數(shù)按地址傳遞參數(shù)——地址傳遞
函數(shù)的參數(shù)可以是指針類(lèi)型。它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。
#include<stdio.h>voidswapf(int*p1,int*p2);main(){inta,b;a=5;b=10;//說(shuō)明兩個(gè)變量并賦初值
printf(“beforeswapa=%db=%d\n”,a,b);swapf(&a,&b);printf(“afterswapfa=%db=%d\n”,a,b);return0;}voidswapf(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;printf(“inswapf*p1=%d*p2=%d\n”,*p1,*p2);}
五C語(yǔ)言函數(shù)3.函數(shù)參數(shù)和函數(shù)的值②函數(shù)的返回值格式:return表達(dá)式
或return(表達(dá)式)#include<stdio.h>intfunc(intx)main(){inta,c;scanf(“%d”,&a);c=func(a);printf(“%d\n”,c);return0;}
Intfunc(intx){intz;if(x>=0)z=2*x*x*x-x;elsez=2*x*x;returnz;}
五C語(yǔ)言函數(shù)3.函數(shù)參數(shù)和函數(shù)的值說(shuō)明:函數(shù)的返回值只能有一個(gè)。當(dāng)函數(shù)中不需要指明返回值時(shí),可以寫(xiě)成:return。若用void聲明函數(shù)的返回類(lèi)型,也可以不寫(xiě)。一個(gè)函數(shù)體內(nèi)可以有多個(gè)返回語(yǔ)句,不論執(zhí)行到哪一個(gè),函數(shù)都結(jié)束,回到主調(diào)函數(shù)。當(dāng)函數(shù)沒(méi)有指明返回值,即return;或沒(méi)有返回語(yǔ)句時(shí),可以定義無(wú)類(lèi)型函數(shù),其形式為:
void函數(shù)名(形參表){}函數(shù)定義時(shí)的類(lèi)型就是函數(shù)返回值的類(lèi)型
六C語(yǔ)言指針1.什么是指針
指針是一種變量,具有變量的三要素:名字、類(lèi)型和值。
指針是用來(lái)存放某個(gè)變量的地址值。
指針的類(lèi)型是該指針?biāo)赶虻淖兞康念?lèi)型,而不是指針本身值的類(lèi)型。如:inta=5,*P;P=&a;
六C語(yǔ)言指針1.什么是指針C語(yǔ)言中關(guān)于地址值得表示有如下規(guī)定:①一般變量的地址值用變量名前加運(yùn)算符&表示。②數(shù)組的地址值可用數(shù)組名表示,數(shù)組名表示該數(shù)組的首元素的地址值。數(shù)值中某個(gè)元素的地址值用&運(yùn)算符加上數(shù)組元素名。如:inta[10],*p1,*p2;p1=a;p2=&a[5]
六C語(yǔ)言指針2.指針的表示①指向int型變量的指針
如:int*p1,*p2②指向char型變量的指針
如:char*pc1,*pc2③指向float型變量的指針
如:float*pf1,*pf2double*pd1,*pd2④指向數(shù)組的指針
如:floatm[3][2],*p1[3],(*p2)[2]
六
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能化農(nóng)業(yè)機(jī)械購(gòu)置及售后服務(wù)合同范本4篇
- 二零二五年度「精英招募」企業(yè)人才招聘合同模板3篇
- 二零二五年度游戲角色設(shè)計(jì)授權(quán)合同4篇
- 2025年度房地產(chǎn)項(xiàng)目預(yù)售合同示范文本4篇
- 2025年度南匯農(nóng)業(yè)志修訂與版權(quán)登記合同3篇
- 二零二五版汽車(chē)維修連鎖店經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同2篇
- 2025年度個(gè)人設(shè)備租賃擔(dān)保貸款合同范本2篇
- 2025年度苗木出口貿(mào)易合同標(biāo)準(zhǔn)樣本3篇
- 2025年度個(gè)人借款合同信用評(píng)估體系構(gòu)建4篇
- 二零二五年度新型建材門(mén)面房租賃及推廣合作合同
- 經(jīng)營(yíng)范圍登記規(guī)范表述目錄(試行)(V1.0.2版)
- 阿里商旅整體差旅解決方案
- 浙江天臺(tái)歷史文化名城保護(hù)規(guī)劃說(shuō)明書(shū)
- 邏輯思維訓(xùn)練500題
- 第八講 發(fā)展全過(guò)程人民民主PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 實(shí)體瘤療效評(píng)價(jià)標(biāo)準(zhǔn)RECIST-1.1版中文
- 企業(yè)新春茶話會(huì)PPT模板
- GB/T 19185-2008交流線路帶電作業(yè)安全距離計(jì)算方法
- DIC診治新進(jìn)展課件
- 公路工程施工現(xiàn)場(chǎng)安全檢查手冊(cè)
- 1汽輪機(jī)跳閘事故演練
評(píng)論
0/150
提交評(píng)論