版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言期末復(fù)習(xí)之基礎(chǔ)學(xué)問(wèn)篇
—楊士帥
一C語(yǔ)言概述
>程序:一組計(jì)算機(jī)能夠識(shí)別和執(zhí)行的指令。指令的有序的集合。
>計(jì)算機(jī)語(yǔ)言:人和計(jì)算機(jī)溝通信息,計(jì)算機(jī)和人都能識(shí)別的語(yǔ)言
Ac語(yǔ)言的注釋:
〃單行注釋
/*……*/多行注釋。
Ac語(yǔ)言的結(jié)構(gòu):
1.由一個(gè)或多個(gè)源程序文件組成。
2.函數(shù)是c程序的基本單位。
3.一個(gè)C程序至少含有一個(gè)main函數(shù),也可以由一個(gè)main函數(shù)
和若干個(gè)其他函數(shù)組成。
4.c的這些特點(diǎn)簡(jiǎn)單實(shí)現(xiàn)程序的模塊化。
5.C程序總是從main函數(shù)起先執(zhí)行,而且不論main函數(shù)的位置
如何。
>每個(gè)語(yǔ)句和數(shù)據(jù)的定義后面必需有一個(gè)括號(hào)。
AC語(yǔ)言本身沒(méi)有輸入輸出函數(shù),輸入輸出操作是庫(kù)函數(shù)scanf和
printf供應(yīng)的。
二數(shù)據(jù)的類型和運(yùn)算
(一)常量:在程序運(yùn)行的過(guò)程中,其值不能被變更。
1.整型常量:1000.
2.實(shí)型常量:0.34,12.34e3.
3.字符常量:'a','\n'.
4.字符串常量:“boy”。
5.符號(hào)常量:ftdefinePI3.1416
(二)變量:在程序運(yùn)行期間,變量的值是可以變更的。
1.變量必需先定義后運(yùn)用。
2.剛定義尚未賦值的變量具有隨機(jī)值。
3.定義變量要同時(shí)定義名字和類型。
4.變量名和變量值是兩個(gè)不同的概念。
i.變量名實(shí)際是以這個(gè)名字代表一個(gè)內(nèi)存地址。
ii.變量值就是該內(nèi)存單元當(dāng)前存儲(chǔ)的值。
(三)標(biāo)識(shí)符:一個(gè)對(duì)象的名字。
1.只能由字母,數(shù)字和下劃線三種字符組成,而且第一個(gè)字符必
需為字母或下劃線。
2.標(biāo)識(shí)符的長(zhǎng)度無(wú)限制,但不能以關(guān)鍵字作為標(biāo)識(shí)符。
3.不合法的標(biāo)識(shí)符:M.D.John,#33,3D64,Include。
(四)數(shù)據(jù)類型:就是對(duì)數(shù)據(jù)安排儲(chǔ)存單元的支配,包括儲(chǔ)存單
元的長(zhǎng)度以及數(shù)據(jù)的存儲(chǔ)形式。
數(shù)據(jù)類型寬度
CharIB
Shortint2B
Int4B
Longint4B
Float4B
Double8B
Longdouble80B
整數(shù)的默認(rèn)時(shí)signed,各整數(shù)類型均可加修飾符unsigned表示無(wú)符
號(hào)整數(shù)類型,unsignedint可以簡(jiǎn)寫成unsigned.
1.整型:
>一個(gè)十進(jìn)制數(shù)是0到9的序列。
?十六進(jìn)制應(yīng)當(dāng)加前綴Ox。如:Oxfa,0xAE03
A八進(jìn)制應(yīng)當(dāng)加前綴0.如:030.
>運(yùn)用科學(xué)記數(shù)法,e/E的后面肯定不能在跟小數(shù),且E/e的前面
必需有值。
2.字符型:
A用單引號(hào)括起來(lái)的單個(gè)字符。如:'MJ0,.事實(shí)上存儲(chǔ)的是
該數(shù)據(jù)的ASCII碼。所以也可以把他們看成是整型量,C語(yǔ)言容
許對(duì)整型變量賦以字符型,也允許對(duì)字符變量賦以整形值。
3.轉(zhuǎn)義字符:
轉(zhuǎn)義字符含義
\bBackspace
\tTab
\n換行
(五)運(yùn)算符:
1.算術(shù)運(yùn)算符:
>整數(shù)除法:兩個(gè)整數(shù)相除的結(jié)果為整數(shù)。
Ex:5/3=1,舍去小數(shù)部分。
-5/3=-1,向零取整。
>浮點(diǎn)除法:
保證除數(shù)和被除數(shù)中至少有一個(gè)是浮點(diǎn)數(shù)。
Ex:5/4.0=1.25.
A%模運(yùn)算要求運(yùn)算元為整數(shù),結(jié)果也是整數(shù)。
Ex:5%3=2.
Ac語(yǔ)言沒(méi)有乘方運(yùn)算,但pow函數(shù)可以實(shí)現(xiàn)乘方運(yùn)算。
pow(x,y)x的y次方。
#include<math.h>.
算數(shù)運(yùn)算符的優(yōu)先級(jí)及結(jié)合性:先乘除后加減,從左至右。
A不同類型數(shù)據(jù)的混合運(yùn)算:類型的自動(dòng)轉(zhuǎn)換,編譯系統(tǒng)會(huì)自動(dòng)把
各操作系統(tǒng)操縱數(shù)轉(zhuǎn)化為操作數(shù)中最長(zhǎng)的類型。
EX:若int型及float或double型數(shù)據(jù)進(jìn)行運(yùn)算時(shí),系統(tǒng)會(huì)自動(dòng)把
int及float型數(shù)據(jù)轉(zhuǎn)化為double型,然后在進(jìn)行運(yùn)算,結(jié)果時(shí)
double型。
2.自加自減運(yùn)算符:
>i++,i--:在運(yùn)用i之后將i的值加/減1.
>++I,—i:在運(yùn)用i之前,先將i的值加/減1.
3.強(qiáng)制類型轉(zhuǎn)換:
(double)a將a轉(zhuǎn)化為double類型。
短類型->長(zhǎng)類型平安
長(zhǎng)類型->短類型有可能會(huì)丟失數(shù)據(jù)。
4.運(yùn)算符的優(yōu)先級(jí):
1,()、{}、□、.、(結(jié)構(gòu)體成員運(yùn)算符)、->(指向結(jié)構(gòu)體成員運(yùn)
算符)
2,單目運(yùn)算符!(非)、一一(自減)、++(自加)、?(按位取反)、
正號(hào)(+)、負(fù)號(hào)(-)
3,算術(shù)運(yùn)算符*、樂(lè)/,+、-
4,關(guān)系運(yùn)算符<、>、>=、<=,=、!=
5,邏輯運(yùn)算符&&和||
6,賦值運(yùn)算符=
7,逗號(hào)運(yùn)算符(表達(dá)式1),(表達(dá)式2),(表達(dá)式3)..?
還有就是左右運(yùn)算依次
a+b+為雙目運(yùn)算符,(a>b)?a:b中?:為3目運(yùn)算符.!a為單目
運(yùn)算符.
單目,三目運(yùn)算符都為自右向左結(jié)合,雙目運(yùn)算符除賦值運(yùn)算符都為
自左向右結(jié)合.
5.關(guān)系運(yùn)算符:
>,<,>S<S==,!二.用來(lái)比較兩個(gè)操作數(shù)之間的關(guān)系,運(yùn)算結(jié)果為1或
0.
6.邏輯運(yùn)算符:
!,&&,IN用來(lái)實(shí)現(xiàn)邏輯運(yùn)算和邏輯推斷。
用非0表示邏輯值的true,用0表示邏輯值的false。
7.條件運(yùn)算符:
三目運(yùn)算符:表達(dá)式a?表達(dá)式b:表達(dá)式c
若表達(dá)式的值非0,則返回表達(dá)式b的值;若表達(dá)式的a的值為0,
則返回表達(dá)式c的值。
8.逗號(hào)運(yùn)算符:
用來(lái)將若干獨(dú)立的表達(dá)式分隔并連接構(gòu)成一個(gè)逗號(hào)表達(dá)式。
9.賦值運(yùn)算符:
變量二表達(dá)式。右結(jié)合性。
三輸入輸出函數(shù)
(一)限制臺(tái)I/O:程序及外界溝通。
(二)C語(yǔ)言中全部的I/O都是由庫(kù)函數(shù)完成的,要用include
將相關(guān)頭文件包含在源文件當(dāng)中。運(yùn)用標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí)要用
到stdio.h文件。
(三)格式輸出函數(shù):printf(“格式限制字符串”,表達(dá)式列表)。
格式字符意義
d,i以帶符號(hào)的十進(jìn)制輸出整數(shù)
0以八進(jìn)制形式輸出無(wú)符號(hào)整數(shù)
(不帶前綴0)
X,x以十六進(jìn)制的無(wú)符號(hào)數(shù)輸出整數(shù)
(不帶前綴Ox)
U以無(wú)符號(hào)的十進(jìn)制形式輸出整數(shù)
f以小數(shù)的形式輸出單,雙精度實(shí)
數(shù),隱含6位小數(shù)
E,e以指數(shù)的形式輸出單,雙精度實(shí)
數(shù)
G,g以%£或%2中較短的輸出寬度輸
出單、雙精度實(shí)數(shù)
c輸出單個(gè)字符
s輸出字符串
格式修飾符:
O%-m.nlf,%-mld
字符說(shuō)明
1用于輸出長(zhǎng)整形數(shù)據(jù)以及double型數(shù)
據(jù)
m數(shù)據(jù)顯示的最小寬度
n對(duì)實(shí)數(shù),表示輸出n位小數(shù)。
對(duì)字符串,表示截取的字符個(gè)數(shù)。
—輸出的數(shù)字或字符在顯示寬度區(qū)域內(nèi)
左對(duì)齊。
?未指定輸出寬度m,則按實(shí)際位數(shù)輸出。
?未指定小數(shù)位數(shù),默認(rèn)6位。
A寬度計(jì)算中小數(shù)點(diǎn)要占一位。
?若數(shù)據(jù)實(shí)際寬度比制定寬度要小,默認(rèn)右對(duì)齊,即左補(bǔ)
空格。有修飾符-,則左對(duì)齊,即右補(bǔ)空格。
》若數(shù)據(jù)的實(shí)際寬度比指定寬度大,則按實(shí)際寬度輸出。
<4>格式輸入函數(shù):用戶用指定的格式從盤上把數(shù)據(jù)輸入到指定的變
量中。
scanf(“格式限制字符”,變量地址列表);
>在scanf語(yǔ)句的格式字符串中,假如沒(méi)有非格式字符在
"%d%d%dv之間做輸入時(shí)的間隔,在輸入時(shí)要用一個(gè)或
一個(gè)以上的空格或回車或TAB鍵作為輸入數(shù)據(jù)之間的間
隔。
>scanf函數(shù)中的格式限制后面應(yīng)當(dāng)是變量地址,而不是變
量名。
>不能用格式限制來(lái)規(guī)定輸入數(shù)據(jù)的精度。
O:scanf(z,%7.2f",&a);X
scanf("%f",&a);V
>假如輸入在格式限制字符串中除了格式字符還有其它字
符,那么在輸入時(shí)這些字符將被作為間隔符,要輸入相
同的字符。
Ascanf(rta=%d,b=%d*,&a,&b)a=12,b=34
在輸入數(shù)據(jù)時(shí)遇到以下?tīng)顩r,則認(rèn)為是一個(gè)數(shù)據(jù)輸入的結(jié)束:
遇到空格鍵,回車鍵,tab鍵。
滿意域?qū)?,?4d,輸入4位結(jié)束。
遇到非法字符。
>在輸入字符型數(shù)據(jù)時(shí),若格式限制字符中沒(méi)有非格式字符,則認(rèn)
為全部輸入的字符均為有效字符。
O如:scanf&a,&b,&c);
?只有當(dāng)輸入為:def時(shí)(BP:不能有間隔),才能
把d賦于a,給予b,'f'給予c。
四流程限制
(一)依次:
>按語(yǔ)句的先后依次依次執(zhí)行。
A復(fù)合語(yǔ)句:可用{}括起來(lái)的多個(gè)語(yǔ)句,構(gòu)成一個(gè)復(fù)合語(yǔ)句。在c
語(yǔ)言中復(fù)合語(yǔ)句被認(rèn)為是一條語(yǔ)句。
(二)分支:
if語(yǔ)句:實(shí)現(xiàn)兩個(gè)分支的選擇結(jié)構(gòu)。
最常用的3種if語(yǔ)句的形式:
1.if(表達(dá)式)語(yǔ)句1(沒(méi)有else子句)
2.if(表達(dá)式)語(yǔ)句1
else語(yǔ)句2(有else子句)
3.if(表達(dá)式1)語(yǔ)句1
elseif(表達(dá)式2)語(yǔ)句2
elseif(表達(dá)式3)語(yǔ)句3
I
I
elseif(表達(dá)式m)語(yǔ)句m
else語(yǔ)句m+1
IF嵌套:在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。
else總是及它上面最近的為配對(duì)的if配對(duì)。
if()
if()語(yǔ)句1
else語(yǔ)句2
else
if()語(yǔ)句3
else語(yǔ)句4
Switch語(yǔ)句:實(shí)現(xiàn)多分支的選擇結(jié)構(gòu)。
依據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語(yǔ)句。
switch語(yǔ)句的一般格式:
switch(表達(dá)式)
{case常量1:語(yǔ)句1
case常量2:語(yǔ)句2
case常量n:語(yǔ)句n
default:語(yǔ)句n+1
)
switch電句中表達(dá)式和常量可以是整形以及字符型。
任何兩個(gè)case后面的常量不行有相同的值。
先計(jì)算表達(dá)式的值,在依據(jù)表達(dá)式的值轉(zhuǎn)向不同的分支。
每個(gè)case分支的語(yǔ)句無(wú)需用{}括起來(lái)。
每個(gè)case分支都是入口點(diǎn)。
break語(yǔ)句時(shí)轉(zhuǎn)移語(yǔ)句,即跳出switch,無(wú)break語(yǔ)句,將執(zhí)行入口
點(diǎn)之后的全部語(yǔ)句。
(三)循環(huán):
>While(表達(dá)式)語(yǔ)句
先推斷循環(huán)條件表達(dá)式的值,若為真,則執(zhí)行循環(huán)體;若為假則不執(zhí)
行循環(huán)體語(yǔ)句。
Ado
循環(huán)體語(yǔ)句
whilie(表達(dá)式)
先無(wú)條件執(zhí)行一次循環(huán)體,然后在推斷循環(huán)條件是否成立。
AFor(表達(dá)式1;表達(dá)式2;表達(dá)式3)
循環(huán)體語(yǔ)句。
表達(dá)式1:為循環(huán)變量設(shè)置初始值。
表達(dá)式2:推斷是否接著循環(huán)。
表達(dá)式3:修改循環(huán)變量的值。
循環(huán)嵌套:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱之為循環(huán)
嵌套。內(nèi)層循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。3種循環(huán)可以
相互嵌套。
三種循環(huán)的比較:
?一般狀況下,三種循環(huán)可以相互代替。
>循環(huán)中應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句。
A用while和do…while循環(huán)變量操作應(yīng)在while和do…while之
前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。
>Break:從循環(huán)體中強(qiáng)行退出,結(jié)束整個(gè)循環(huán)。
>Continue:停止本次循環(huán),干脆起先下次循環(huán)。
五函數(shù)
運(yùn)用角度來(lái)看函數(shù)包括庫(kù)函數(shù)和用戶自定義函數(shù)。
庫(kù)函數(shù):由C系統(tǒng)供應(yīng),用戶無(wú)須定義,也不必在程序中作類型說(shuō)明,
只需在程序中包含有該函數(shù)的頭文件即可在程序中干脆調(diào)用。
用戶自定義函數(shù):用戶依據(jù)須要自己編寫的函數(shù)。
從函數(shù)形式來(lái)看:函數(shù)分為無(wú)參數(shù)函數(shù)和有參數(shù)函數(shù)。
無(wú)參數(shù)函數(shù):無(wú)參數(shù)函數(shù)一般用來(lái)執(zhí)行一組操作。無(wú)參數(shù)函數(shù)可以帶
回或不帶回函數(shù)值。
有參數(shù)函數(shù):在調(diào)用函數(shù)時(shí),主調(diào)函數(shù)要通過(guò)參數(shù)向被調(diào)函數(shù)傳遞數(shù)
據(jù)。函數(shù)可以帶回或者不帶回函數(shù)值。一般狀況下,被調(diào)函數(shù)會(huì)返回
一個(gè)函數(shù)值,供主函數(shù)運(yùn)用。
一個(gè)C程序由一個(gè)或多個(gè)程序模塊組成,每一個(gè)程序模塊作為一個(gè)源
程序文件。
對(duì)較大的程序,一般不希望將全部的內(nèi)容都放在一個(gè)文件中,而是將
它們分別放在若干個(gè)源文件當(dāng)中,由若干個(gè)源文件組成一個(gè)C程序。
一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)及其他相關(guān)語(yǔ)句組成。
一個(gè)源程序文件是一個(gè)編譯的單位,在程序進(jìn)行編譯是以源程序文件
為單位進(jìn)行編譯的,而不死以函數(shù)為單位進(jìn)行編譯的。
C程序的執(zhí)行是從main函數(shù)起先的,假如在main函數(shù)的執(zhí)行過(guò)程中
調(diào)用其他函數(shù),調(diào)用函數(shù)結(jié)束后流程返回到main函數(shù),main函數(shù)結(jié)
束時(shí)整個(gè)程序運(yùn)行結(jié)束。
全部函數(shù)都是平行和同等的,即在定義函數(shù)時(shí)是分別進(jìn)行的,相互獨(dú)
立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義。函數(shù)
間可以相互調(diào)用,但不能調(diào)用main函數(shù),main函數(shù)是被操作系統(tǒng)所
調(diào)用。
定義函數(shù):
C語(yǔ)言要求在程序中遇到的全部函數(shù),必需先定義后運(yùn)用。
函數(shù)的定義指明白函數(shù)名,函數(shù)返回值類型,函數(shù)實(shí)現(xiàn)的功能以及參
數(shù)的個(gè)數(shù)及類型,將這些信息通知給編譯系統(tǒng)。
函數(shù)定義格式:
類型名函數(shù)名(形式參數(shù)表列)
函數(shù)體
類型說(shuō)明白函數(shù)返回值的類型,它可以是任何有效類型,假如省略,
默認(rèn)為int。
參數(shù)列表運(yùn)用逗號(hào)分割變量表,各變量表由類型和變量名組成,參數(shù)
列表可以為空,表示無(wú)參,但此括號(hào)不能省略,不管定義還是聲明時(shí),
每個(gè)函數(shù)參數(shù)必需同時(shí)含有類型和參數(shù)名。
空函數(shù):{}中類容為空,調(diào)用函數(shù),什么也不做,目的時(shí)便利以后對(duì)
功能的擴(kuò)充,而不會(huì)影響程序的結(jié)構(gòu)。
函數(shù)的返回:return表達(dá)式。
用途:使得本函數(shù)馬上退出,返回到調(diào)用語(yǔ)句的地方,返回一個(gè)值。
函數(shù)可以用兩種方法停止運(yùn)行并返回到調(diào)用它的地方:
執(zhí)行到函數(shù)最終一個(gè)語(yǔ)句。
遇到return語(yǔ)句,函數(shù)的返回值是靠return
語(yǔ)句獲得的。
假如不希望函數(shù)有返回值,將函數(shù)類型聲明為void。
除了類型為void函數(shù)外,其他函數(shù)均有返回值,該值由return語(yǔ)句
確定,假如沒(méi)有return語(yǔ)句函數(shù)將返回一個(gè)不確定的值。
假如函數(shù)沒(méi)有指明函數(shù)返回值的類型,默認(rèn)為int。
當(dāng)函數(shù)的返回值不是整型時(shí),應(yīng)當(dāng):
明確說(shuō)明函數(shù)的類型。
函數(shù)聲明位于第一次調(diào)用之前。
參數(shù)傳遞:
C語(yǔ)言中的函數(shù)調(diào)用傳遞參數(shù)是按值傳送。
假如實(shí)參的修改通過(guò)形參帶回主調(diào)函數(shù),用指針。
用數(shù)組作為函數(shù)參數(shù)時(shí),就把數(shù)組的地址傳給了參數(shù)。
函數(shù)的作用域:
每個(gè)函數(shù)都是一個(gè)獨(dú)立的代碼塊,一個(gè)函數(shù)的代碼屬于該函數(shù)專有。
一個(gè)代碼塊中定義的變量成為局部變量,局部變量隨代碼塊的產(chǎn)生而
產(chǎn)生,隨代碼塊的退出而消亡。
函數(shù)的形參也是局部變量。
在任何一個(gè)函數(shù)之外定義的變量成為全局變量,可以被任何一個(gè)函數(shù)
訪問(wèn),修改。
在函數(shù)內(nèi)部用存儲(chǔ)類型符Static說(shuō)明變量不隨函數(shù)的運(yùn)行,退出而
產(chǎn)生,消亡。但仍舊只能在函數(shù)內(nèi)部訪問(wèn)它。假如全局變量和局部變
量同名,局部變量屏蔽全局變量。
函數(shù)的嵌套調(diào)用:
C語(yǔ)言容許在一個(gè)在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用c這
樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其他函數(shù)。
六數(shù)組
數(shù)組是一組有序數(shù)據(jù)的集合,下標(biāo)代表了數(shù)據(jù)在數(shù)組中的序號(hào)。
用數(shù)組名和下標(biāo)唯一確定數(shù)組中的元素。
數(shù)組中每一個(gè)元素都必需屬于同一個(gè)數(shù)據(jù)類型。
一維數(shù)組的定義:
類型數(shù)組名[常量表達(dá)式]
數(shù)組名的命名規(guī)則及變量命名規(guī)則相同,數(shù)組也必需先定義后運(yùn)用。
數(shù)組類型事實(shí)上是數(shù)組元素的取值類型。對(duì)于同一數(shù)組,其全部元素
的數(shù)據(jù)類型都是相同的。
數(shù)組民是用戶定義的標(biāo)識(shí)符,不能及其他變量名相同。
定義數(shù)組時(shí),方括號(hào)必需是一個(gè)常量表達(dá)式,表示數(shù)據(jù)的元素個(gè)數(shù),
也稱為數(shù)組長(zhǎng)度??梢允欠?hào)常量或常量表達(dá)式,但不能時(shí)變量。
一維數(shù)組的運(yùn)用:
運(yùn)用數(shù)組就是運(yùn)用他的元素。
數(shù)組的元素和一般變量一樣,只不過(guò)是名字有些特殊。
數(shù)組元素的一般表示形式:
數(shù)組名[下標(biāo)序號(hào)]
運(yùn)用數(shù)組時(shí),數(shù)組下標(biāo)可以是常量,變量和表達(dá)式,從0起先。
一維數(shù)組的初始化:
Inta[10]={0,1,2,3,4,5,6,7,8,9};
可以只給部分元素賦值,當(dāng){}中元素少于元素個(gè)數(shù)時(shí),系統(tǒng)自動(dòng)給前
面元素賦值,其余元素自動(dòng)賦0。
Inta[10]={l,2,3,4,5};
只能給逐個(gè)元素賦值,而不能給數(shù)組整體賦值。
O給十個(gè)元素全部賦3,只能寫為:
inta[10]={3,3,3,3,3,3,3,3,3,3};
O而不能寫為:inta[10]=3;
在定義數(shù)組時(shí),若要給全部元素賦值,可以省略數(shù)組元素的長(zhǎng)度。
O如:inta[5]={l,2,3,4,5};
O可寫為:inta[]={l,2,3,4,5);
二維數(shù)組的定義:
類型變量名[常量表達(dá)式1][常量表達(dá)式2]
二位數(shù)組的運(yùn)用:
數(shù)組名[下標(biāo)1][下標(biāo)2]
數(shù)組中元素依次:
C語(yǔ)言中,二維數(shù)組是按行儲(chǔ)存的。
?inta[3][4]
a[0][0]a[0][l]a[0][2]aEO][3]
a[l][0]a[l][l]a⑴⑵a[l][3]a⑵[0]a⑵⑴
a⑵⑵a⑵[31
二維數(shù)組的初始化:
Inta[5][3]=]={{80,75,92},{61,65,71},{59,63,70},
{85,87,90},{76,77,85}};
如對(duì)全部元素賦值,行下表可以省略,但列下表不能省略。
inta[3][3]={1,2,3,4,5,6,7,8,9};
可以寫為:
inta[][3]={1,2,3,4,5,6,7,8,9);
字符數(shù)組:chare[10];
字符數(shù)組的初始化:假如初始值小于數(shù)組長(zhǎng)度,則將這些字符賦給數(shù)
組中前面的那些元素,其余元素自動(dòng)定位空字符。
字符'\0'作為字符串的結(jié)束標(biāo)記。
字符串處理函數(shù):輸入字符串到字符數(shù)組。
scanf("%s",字符數(shù)組名);
gets(字符數(shù)組名);
?charst[20];gets(st);scanf("%s”,st);
把字符數(shù)組中存放的字符串輸出:
Oprintf(,字符數(shù)組名)
Oputs(字符數(shù)組名)
?charst[20]="China”;puts(st);
printf("%s”,st);
#include<string.h>
stract(字符串1,字符串2)
把字符串2鏈接到字符串1后面。
Strcpy(字符串1,字符串2)
把字符串2的內(nèi)容拷貝的字符串1(覆蓋)
strcmp(字符串1,字符串2)
依據(jù)ASCH碼依次比較兩個(gè)字符串,返回比較結(jié)果。
字符串1二字符串2,返回值二0;
字符串1>字符串2,返回值>0;
字符串k字符串2,返回值<0;
Strlen(字符串)
返回字符串中包含的字符個(gè)數(shù)(不包括結(jié)束標(biāo)記'\0')
Strlwr(字符串)將大寫字母轉(zhuǎn)化成小寫字母。
strupr(字符串)將小寫字母轉(zhuǎn)換成大寫字母。
'A'V:41H-50H
'z-6111-7011
七結(jié)構(gòu)體
定義結(jié)構(gòu)體的類型:struct結(jié)構(gòu)體名
(
成員列表二類型名+變量名;
);
結(jié)構(gòu)體可以嵌套引用,即一個(gè)結(jié)構(gòu)體的定義中可以引用其他結(jié)構(gòu)體類
型。
structDate
{intmonth;intday;intyear;};
structStu
{intnum;charname[20];
charsex;intage;
structDatebirthday;
charaddr[30];
);
結(jié)構(gòu)體類型及結(jié)構(gòu)體變量是不同的概念,相當(dāng)于變量類型和變量。
只能對(duì)變量賦值,存取或運(yùn)算,而不能對(duì)一個(gè)類型賦值,存取或運(yùn)算。
在編譯時(shí),對(duì)類型是不安排空間的,只對(duì)變量安排空間。
定義結(jié)構(gòu)體類型的變量:
1.先聲明結(jié)構(gòu)體類型,再定義該類型變量
structstudent
(
intnum;charname[20];
charsex;intage;
floatscore;charaddr[30];
);
structstudentstul,stu2;
2.在聲明類型的同時(shí)定義變量
structStudent
{intnum;
charname[20];
charsex;
intage;
floatscore;
charaddr[30];
}studentl,student2;
3.不指定類型名而干脆定義結(jié)構(gòu)體類型變量
?其格式為:
struct
成員表列
}變量名表列;
結(jié)構(gòu)體變量的初始化:
Structdate
(
Intmonth;
Intday;
Intyear;
);
Structdatebirthday={10,22,83};
運(yùn)用結(jié)構(gòu)體變量:只能通過(guò)成員運(yùn)算符引用結(jié)構(gòu)體變量的各個(gè)成員,
一般不能對(duì)結(jié)構(gòu)體變量整體運(yùn)用。
O結(jié)構(gòu)體變量名.成員名
O如:stul.numbirthday,year
假如成員本身又是一個(gè)結(jié)構(gòu)體類型,則要用若干個(gè)成員運(yùn)算符,一級(jí)
一級(jí)找到最低一級(jí)的成員。
O如;
對(duì)結(jié)構(gòu)體變量的成員可以像一般變量一樣進(jìn)行各種運(yùn)算。
stul.num++;
類型定義在前,不安排內(nèi)存,變量定義后,給變量安排一段連續(xù)的內(nèi)
存單元。.
結(jié)構(gòu)體成員名可及程序中的其他變量同名,二者占不同的內(nèi)存單元互
不干擾。.
結(jié)構(gòu)體數(shù)組:就是數(shù)組中的每一個(gè)元素都是一個(gè)結(jié)構(gòu)體類型的變量。
structPerson
(
charname[20];
intnum;
}teacher[3]={"Li",1,"Zhang”,2,"Sun”,3};
指向結(jié)構(gòu)體變量的指針:
指向結(jié)構(gòu)體對(duì)象的指針變量既可以指向結(jié)構(gòu)體變量,也可以用來(lái)指向
結(jié)構(gòu)體數(shù)組中的元素。
指向結(jié)構(gòu)圖變量的指針,其類型必需及結(jié)構(gòu)體變量類型相同。
structStudent*p;
為了運(yùn)用便利和直觀,C語(yǔ)言允許把(*p).num用p->num來(lái)代替。
結(jié)構(gòu)體變量做函數(shù)參數(shù):
用結(jié)構(gòu)體變量的成員作參數(shù):
例如,用num或stu[2].name作函數(shù)實(shí)參,將實(shí)參值傳給形
參
用結(jié)構(gòu)體變量做參數(shù):
用結(jié)構(gòu)體變量做實(shí)參時(shí),將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部按
依次傳給形參,形參也必需是同類型的結(jié)構(gòu)體變量。
用指向結(jié)構(gòu)體變量:
指針做實(shí)參,將結(jié)構(gòu)體變量的地址傳給形參。
八指針
內(nèi)存單元的地址稱之為指針。
變量A中存放變量3的地址,稱A是B的指針,即A指向B.
定義指針變量:
Type*name
type可以時(shí)C語(yǔ)言中的任何一種類型。
指針運(yùn)算符:
&一元運(yùn)算符,返回變量的內(nèi)存地址。
*一元運(yùn)算符,返回指針?biāo)赶蜃兞康闹怠?/p>
指針指向變量:
Inta;
Int*p;
P=&a;
指針賦值:及其他變量一樣,指針變量也可以出現(xiàn)在賦值語(yǔ)句中,將
一個(gè)指針變量的值賦給另一個(gè)指針變量。
指針運(yùn)算:+和-
Int*p,當(dāng)前p的值為2000,由于整型數(shù)占4個(gè)字節(jié),p++的值將變
成2004,p—值將變?yōu)?996.p每遞增一次就指向下一個(gè)整形數(shù),遞
減時(shí)也一樣。
指針比較:
int*p=10,*q=20;
if(p<q)-
?比較的是兩個(gè)指針?biāo)赶虻膬?nèi)存地址的大小
指針及數(shù)組:
指針及數(shù)組是緊密相連的。一個(gè)變量有地址,一個(gè)數(shù)組包含若干
個(gè)元素,每個(gè)元素都有相應(yīng)地址,指針變量可以指向數(shù)組元素。
Inta[10];
數(shù)組名a其實(shí)就是一個(gè)地址值,記錄的數(shù)組起先的地址,即a[0]
地址。.
通過(guò)指針引用數(shù)組元素:
(1)下標(biāo)法,如a[i]形式
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源汽車動(dòng)力系統(tǒng)研發(fā)合同4篇
- 2024版合同續(xù)約細(xì)化合同版B版
- 2025年度出境游定制游合同3篇
- 2025年度醫(yī)療機(jī)構(gòu)檢驗(yàn)科外包服務(wù)承包合同4篇
- 2024蔬菜產(chǎn)業(yè)園區(qū)建設(shè)與農(nóng)產(chǎn)品銷售合作意向協(xié)議書3篇
- 2024版物聯(lián)網(wǎng)技術(shù)研發(fā)與推廣合同
- 2024版政府機(jī)關(guān)臨時(shí)工作人員勞動(dòng)協(xié)議樣本一
- 2025年度安置房維修基金管理合同3篇
- 2025年度現(xiàn)代農(nóng)業(yè)土地承包與經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本4篇
- 2025年度電影劇本創(chuàng)作與主演演員簽約服務(wù)協(xié)議6篇
- 表B. 0 .11工程款支付報(bào)審表
- 警務(wù)航空無(wú)人機(jī)考試題庫(kù)及答案
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說(shuō)明以及簡(jiǎn)單故障處理
- 新生兒窒息復(fù)蘇正壓通氣課件
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- 法律顧問(wèn)投標(biāo)書
- 班主任培訓(xùn)簡(jiǎn)報(bào)4篇(一)
- 成都市數(shù)學(xué)八年級(jí)上冊(cè)期末試卷含答案
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- 危重癥患者轉(zhuǎn)運(yùn)指南-課件
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
評(píng)論
0/150
提交評(píng)論