C語言期末復(fù)習(xí)之基礎(chǔ)學(xué)問篇_第1頁
C語言期末復(fù)習(xí)之基礎(chǔ)學(xué)問篇_第2頁
C語言期末復(fù)習(xí)之基礎(chǔ)學(xué)問篇_第3頁
C語言期末復(fù)習(xí)之基礎(chǔ)學(xué)問篇_第4頁
C語言期末復(fù)習(xí)之基礎(chǔ)學(xué)問篇_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言期末復(fù)習(xí)之基礎(chǔ)學(xué)問篇

—楊士帥

一C語言概述

>程序:一組計算機能夠識別和執(zhí)行的指令。指令的有序的集合。

>計算機語言:人和計算機溝通信息,計算機和人都能識別的語言

Ac語言的注釋:

〃單行注釋

/*……*/多行注釋。

Ac語言的結(jié)構(gòu):

1.由一個或多個源程序文件組成。

2.函數(shù)是c程序的基本單位。

3.一個C程序至少含有一個main函數(shù),也可以由一個main函數(shù)

和若干個其他函數(shù)組成。

4.c的這些特點簡單實現(xiàn)程序的模塊化。

5.C程序總是從main函數(shù)起先執(zhí)行,而且不論main函數(shù)的位置

如何。

>每個語句和數(shù)據(jù)的定義后面必需有一個括號。

AC語言本身沒有輸入輸出函數(shù),輸入輸出操作是庫函數(shù)scanf和

printf供應(yīng)的。

二數(shù)據(jù)的類型和運算

(一)常量:在程序運行的過程中,其值不能被變更。

1.整型常量:1000.

2.實型常量:0.34,12.34e3.

3.字符常量:'a','\n'.

4.字符串常量:“boy”。

5.符號常量:ftdefinePI3.1416

(二)變量:在程序運行期間,變量的值是可以變更的。

1.變量必需先定義后運用。

2.剛定義尚未賦值的變量具有隨機值。

3.定義變量要同時定義名字和類型。

4.變量名和變量值是兩個不同的概念。

i.變量名實際是以這個名字代表一個內(nèi)存地址。

ii.變量值就是該內(nèi)存單元當前存儲的值。

(三)標識符:一個對象的名字。

1.只能由字母,數(shù)字和下劃線三種字符組成,而且第一個字符必

需為字母或下劃線。

2.標識符的長度無限制,但不能以關(guān)鍵字作為標識符。

3.不合法的標識符:M.D.John,#33,3D64,Include。

(四)數(shù)據(jù)類型:就是對數(shù)據(jù)安排儲存單元的支配,包括儲存單

元的長度以及數(shù)據(jù)的存儲形式。

數(shù)據(jù)類型寬度

CharIB

Shortint2B

Int4B

Longint4B

Float4B

Double8B

Longdouble80B

整數(shù)的默認時signed,各整數(shù)類型均可加修飾符unsigned表示無符

號整數(shù)類型,unsignedint可以簡寫成unsigned.

1.整型:

>一個十進制數(shù)是0到9的序列。

?十六進制應(yīng)當加前綴Ox。如:Oxfa,0xAE03

A八進制應(yīng)當加前綴0.如:030.

>運用科學(xué)記數(shù)法,e/E的后面肯定不能在跟小數(shù),且E/e的前面

必需有值。

2.字符型:

A用單引號括起來的單個字符。如:'MJ0,.事實上存儲的是

該數(shù)據(jù)的ASCII碼。所以也可以把他們看成是整型量,C語言容

許對整型變量賦以字符型,也允許對字符變量賦以整形值。

3.轉(zhuǎn)義字符:

轉(zhuǎn)義字符含義

\bBackspace

\tTab

\n換行

(五)運算符:

1.算術(shù)運算符:

>整數(shù)除法:兩個整數(shù)相除的結(jié)果為整數(shù)。

Ex:5/3=1,舍去小數(shù)部分。

-5/3=-1,向零取整。

>浮點除法:

保證除數(shù)和被除數(shù)中至少有一個是浮點數(shù)。

Ex:5/4.0=1.25.

A%模運算要求運算元為整數(shù),結(jié)果也是整數(shù)。

Ex:5%3=2.

Ac語言沒有乘方運算,但pow函數(shù)可以實現(xiàn)乘方運算。

pow(x,y)x的y次方。

#include<math.h>.

算數(shù)運算符的優(yōu)先級及結(jié)合性:先乘除后加減,從左至右。

A不同類型數(shù)據(jù)的混合運算:類型的自動轉(zhuǎn)換,編譯系統(tǒng)會自動把

各操作系統(tǒng)操縱數(shù)轉(zhuǎn)化為操作數(shù)中最長的類型。

EX:若int型及float或double型數(shù)據(jù)進行運算時,系統(tǒng)會自動把

int及float型數(shù)據(jù)轉(zhuǎn)化為double型,然后在進行運算,結(jié)果時

double型。

2.自加自減運算符:

>i++,i--:在運用i之后將i的值加/減1.

>++I,—i:在運用i之前,先將i的值加/減1.

3.強制類型轉(zhuǎn)換:

(double)a將a轉(zhuǎn)化為double類型。

短類型->長類型平安

長類型->短類型有可能會丟失數(shù)據(jù)。

4.運算符的優(yōu)先級:

1,()、{}、□、.、(結(jié)構(gòu)體成員運算符)、->(指向結(jié)構(gòu)體成員運

算符)

2,單目運算符?。ǚ牵⒁灰唬ㄗ詼p)、++(自加)、?(按位取反)、

正號(+)、負號(-)

3,算術(shù)運算符*、樂/,+、-

4,關(guān)系運算符<、>、>=、<=,=、!=

5,邏輯運算符&&和||

6,賦值運算符=

7,逗號運算符(表達式1),(表達式2),(表達式3)..?

還有就是左右運算依次

a+b+為雙目運算符,(a>b)?a:b中?:為3目運算符.!a為單目

運算符.

單目,三目運算符都為自右向左結(jié)合,雙目運算符除賦值運算符都為

自左向右結(jié)合.

5.關(guān)系運算符:

>,<,>S<S==,!二.用來比較兩個操作數(shù)之間的關(guān)系,運算結(jié)果為1或

0.

6.邏輯運算符:

!,&&,IN用來實現(xiàn)邏輯運算和邏輯推斷。

用非0表示邏輯值的true,用0表示邏輯值的false。

7.條件運算符:

三目運算符:表達式a?表達式b:表達式c

若表達式的值非0,則返回表達式b的值;若表達式的a的值為0,

則返回表達式c的值。

8.逗號運算符:

用來將若干獨立的表達式分隔并連接構(gòu)成一個逗號表達式。

9.賦值運算符:

變量二表達式。右結(jié)合性。

三輸入輸出函數(shù)

(一)限制臺I/O:程序及外界溝通。

(二)C語言中全部的I/O都是由庫函數(shù)完成的,要用include

將相關(guān)頭文件包含在源文件當中。運用標準輸入輸出函數(shù)時要用

到stdio.h文件。

(三)格式輸出函數(shù):printf(“格式限制字符串”,表達式列表)。

格式字符意義

d,i以帶符號的十進制輸出整數(shù)

0以八進制形式輸出無符號整數(shù)

(不帶前綴0)

X,x以十六進制的無符號數(shù)輸出整數(shù)

(不帶前綴Ox)

U以無符號的十進制形式輸出整數(shù)

f以小數(shù)的形式輸出單,雙精度實

數(shù),隱含6位小數(shù)

E,e以指數(shù)的形式輸出單,雙精度實

數(shù)

G,g以%£或%2中較短的輸出寬度輸

出單、雙精度實數(shù)

c輸出單個字符

s輸出字符串

格式修飾符:

O%-m.nlf,%-mld

字符說明

1用于輸出長整形數(shù)據(jù)以及double型數(shù)

據(jù)

m數(shù)據(jù)顯示的最小寬度

n對實數(shù),表示輸出n位小數(shù)。

對字符串,表示截取的字符個數(shù)。

—輸出的數(shù)字或字符在顯示寬度區(qū)域內(nèi)

左對齊。

?未指定輸出寬度m,則按實際位數(shù)輸出。

?未指定小數(shù)位數(shù),默認6位。

A寬度計算中小數(shù)點要占一位。

?若數(shù)據(jù)實際寬度比制定寬度要小,默認右對齊,即左補

空格。有修飾符-,則左對齊,即右補空格。

》若數(shù)據(jù)的實際寬度比指定寬度大,則按實際寬度輸出。

<4>格式輸入函數(shù):用戶用指定的格式從盤上把數(shù)據(jù)輸入到指定的變

量中。

scanf(“格式限制字符”,變量地址列表);

>在scanf語句的格式字符串中,假如沒有非格式字符在

"%d%d%dv之間做輸入時的間隔,在輸入時要用一個或

一個以上的空格或回車或TAB鍵作為輸入數(shù)據(jù)之間的間

隔。

>scanf函數(shù)中的格式限制后面應(yīng)當是變量地址,而不是變

量名。

>不能用格式限制來規(guī)定輸入數(shù)據(jù)的精度。

O:scanf(z,%7.2f",&a);X

scanf("%f",&a);V

>假如輸入在格式限制字符串中除了格式字符還有其它字

符,那么在輸入時這些字符將被作為間隔符,要輸入相

同的字符。

Ascanf(rta=%d,b=%d*,&a,&b)a=12,b=34

在輸入數(shù)據(jù)時遇到以下狀況,則認為是一個數(shù)據(jù)輸入的結(jié)束:

遇到空格鍵,回車鍵,tab鍵。

滿意域?qū)挘?4d,輸入4位結(jié)束。

遇到非法字符。

>在輸入字符型數(shù)據(jù)時,若格式限制字符中沒有非格式字符,則認

為全部輸入的字符均為有效字符。

O如:scanf&a,&b,&c);

?只有當輸入為:def時(BP:不能有間隔),才能

把d賦于a,給予b,'f'給予c。

四流程限制

(一)依次:

>按語句的先后依次依次執(zhí)行。

A復(fù)合語句:可用{}括起來的多個語句,構(gòu)成一個復(fù)合語句。在c

語言中復(fù)合語句被認為是一條語句。

(二)分支:

if語句:實現(xiàn)兩個分支的選擇結(jié)構(gòu)。

最常用的3種if語句的形式:

1.if(表達式)語句1(沒有else子句)

2.if(表達式)語句1

else語句2(有else子句)

3.if(表達式1)語句1

elseif(表達式2)語句2

elseif(表達式3)語句3

I

I

elseif(表達式m)語句m

else語句m+1

IF嵌套:在if語句中又包含一個或多個if語句稱為if語句的嵌套。

else總是及它上面最近的為配對的if配對。

if()

if()語句1

else語句2

else

if()語句3

else語句4

Switch語句:實現(xiàn)多分支的選擇結(jié)構(gòu)。

依據(jù)表達式的值,使流程跳轉(zhuǎn)到不同的語句。

switch語句的一般格式:

switch(表達式)

{case常量1:語句1

case常量2:語句2

case常量n:語句n

default:語句n+1

switch電句中表達式和常量可以是整形以及字符型。

任何兩個case后面的常量不行有相同的值。

先計算表達式的值,在依據(jù)表達式的值轉(zhuǎn)向不同的分支。

每個case分支的語句無需用{}括起來。

每個case分支都是入口點。

break語句時轉(zhuǎn)移語句,即跳出switch,無break語句,將執(zhí)行入口

點之后的全部語句。

(三)循環(huán):

>While(表達式)語句

先推斷循環(huán)條件表達式的值,若為真,則執(zhí)行循環(huán)體;若為假則不執(zhí)

行循環(huán)體語句。

Ado

循環(huán)體語句

whilie(表達式)

先無條件執(zhí)行一次循環(huán)體,然后在推斷循環(huán)條件是否成立。

AFor(表達式1;表達式2;表達式3)

循環(huán)體語句。

表達式1:為循環(huán)變量設(shè)置初始值。

表達式2:推斷是否接著循環(huán)。

表達式3:修改循環(huán)變量的值。

循環(huán)嵌套:一個循環(huán)體內(nèi)又包含另一個完整的循環(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é)束的語句。

A用while和do…while循環(huán)變量操作應(yīng)在while和do…while之

前完成。而for語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化。

>Break:從循環(huán)體中強行退出,結(jié)束整個循環(huán)。

>Continue:停止本次循環(huán),干脆起先下次循環(huán)。

五函數(shù)

運用角度來看函數(shù)包括庫函數(shù)和用戶自定義函數(shù)。

庫函數(shù):由C系統(tǒng)供應(yīng),用戶無須定義,也不必在程序中作類型說明,

只需在程序中包含有該函數(shù)的頭文件即可在程序中干脆調(diào)用。

用戶自定義函數(shù):用戶依據(jù)須要自己編寫的函數(shù)。

從函數(shù)形式來看:函數(shù)分為無參數(shù)函數(shù)和有參數(shù)函數(shù)。

無參數(shù)函數(shù):無參數(shù)函數(shù)一般用來執(zhí)行一組操作。無參數(shù)函數(shù)可以帶

回或不帶回函數(shù)值。

有參數(shù)函數(shù):在調(diào)用函數(shù)時,主調(diào)函數(shù)要通過參數(shù)向被調(diào)函數(shù)傳遞數(shù)

據(jù)。函數(shù)可以帶回或者不帶回函數(shù)值。一般狀況下,被調(diào)函數(shù)會返回

一個函數(shù)值,供主函數(shù)運用。

一個C程序由一個或多個程序模塊組成,每一個程序模塊作為一個源

程序文件。

對較大的程序,一般不希望將全部的內(nèi)容都放在一個文件中,而是將

它們分別放在若干個源文件當中,由若干個源文件組成一個C程序。

一個源程序文件由一個或多個函數(shù)及其他相關(guān)語句組成。

一個源程序文件是一個編譯的單位,在程序進行編譯是以源程序文件

為單位進行編譯的,而不死以函數(shù)為單位進行編譯的。

C程序的執(zhí)行是從main函數(shù)起先的,假如在main函數(shù)的執(zhí)行過程中

調(diào)用其他函數(shù),調(diào)用函數(shù)結(jié)束后流程返回到main函數(shù),main函數(shù)結(jié)

束時整個程序運行結(jié)束。

全部函數(shù)都是平行和同等的,即在定義函數(shù)時是分別進行的,相互獨

立的,一個函數(shù)并不從屬于另一個函數(shù),即函數(shù)不能嵌套定義。函數(shù)

間可以相互調(diào)用,但不能調(diào)用main函數(shù),main函數(shù)是被操作系統(tǒng)所

調(diào)用。

定義函數(shù):

C語言要求在程序中遇到的全部函數(shù),必需先定義后運用。

函數(shù)的定義指明白函數(shù)名,函數(shù)返回值類型,函數(shù)實現(xiàn)的功能以及參

數(shù)的個數(shù)及類型,將這些信息通知給編譯系統(tǒng)。

函數(shù)定義格式:

類型名函數(shù)名(形式參數(shù)表列)

函數(shù)體

類型說明白函數(shù)返回值的類型,它可以是任何有效類型,假如省略,

默認為int。

參數(shù)列表運用逗號分割變量表,各變量表由類型和變量名組成,參數(shù)

列表可以為空,表示無參,但此括號不能省略,不管定義還是聲明時,

每個函數(shù)參數(shù)必需同時含有類型和參數(shù)名。

空函數(shù):{}中類容為空,調(diào)用函數(shù),什么也不做,目的時便利以后對

功能的擴充,而不會影響程序的結(jié)構(gòu)。

函數(shù)的返回:return表達式。

用途:使得本函數(shù)馬上退出,返回到調(diào)用語句的地方,返回一個值。

函數(shù)可以用兩種方法停止運行并返回到調(diào)用它的地方:

執(zhí)行到函數(shù)最終一個語句。

遇到return語句,函數(shù)的返回值是靠return

語句獲得的。

假如不希望函數(shù)有返回值,將函數(shù)類型聲明為void。

除了類型為void函數(shù)外,其他函數(shù)均有返回值,該值由return語句

確定,假如沒有return語句函數(shù)將返回一個不確定的值。

假如函數(shù)沒有指明函數(shù)返回值的類型,默認為int。

當函數(shù)的返回值不是整型時,應(yīng)當:

明確說明函數(shù)的類型。

函數(shù)聲明位于第一次調(diào)用之前。

參數(shù)傳遞:

C語言中的函數(shù)調(diào)用傳遞參數(shù)是按值傳送。

假如實參的修改通過形參帶回主調(diào)函數(shù),用指針。

用數(shù)組作為函數(shù)參數(shù)時,就把數(shù)組的地址傳給了參數(shù)。

函數(shù)的作用域:

每個函數(shù)都是一個獨立的代碼塊,一個函數(shù)的代碼屬于該函數(shù)專有。

一個代碼塊中定義的變量成為局部變量,局部變量隨代碼塊的產(chǎn)生而

產(chǎn)生,隨代碼塊的退出而消亡。

函數(shù)的形參也是局部變量。

在任何一個函數(shù)之外定義的變量成為全局變量,可以被任何一個函數(shù)

訪問,修改。

在函數(shù)內(nèi)部用存儲類型符Static說明變量不隨函數(shù)的運行,退出而

產(chǎn)生,消亡。但仍舊只能在函數(shù)內(nèi)部訪問它。假如全局變量和局部變

量同名,局部變量屏蔽全局變量。

函數(shù)的嵌套調(diào)用:

C語言容許在一個在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用c這

樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其他函數(shù)。

六數(shù)組

數(shù)組是一組有序數(shù)據(jù)的集合,下標代表了數(shù)據(jù)在數(shù)組中的序號。

用數(shù)組名和下標唯一確定數(shù)組中的元素。

數(shù)組中每一個元素都必需屬于同一個數(shù)據(jù)類型。

一維數(shù)組的定義:

類型數(shù)組名[常量表達式]

數(shù)組名的命名規(guī)則及變量命名規(guī)則相同,數(shù)組也必需先定義后運用。

數(shù)組類型事實上是數(shù)組元素的取值類型。對于同一數(shù)組,其全部元素

的數(shù)據(jù)類型都是相同的。

數(shù)組民是用戶定義的標識符,不能及其他變量名相同。

定義數(shù)組時,方括號必需是一個常量表達式,表示數(shù)據(jù)的元素個數(shù),

也稱為數(shù)組長度。可以是符號常量或常量表達式,但不能時變量。

一維數(shù)組的運用:

運用數(shù)組就是運用他的元素。

數(shù)組的元素和一般變量一樣,只不過是名字有些特殊。

數(shù)組元素的一般表示形式:

數(shù)組名[下標序號]

運用數(shù)組時,數(shù)組下標可以是常量,變量和表達式,從0起先。

一維數(shù)組的初始化:

Inta[10]={0,1,2,3,4,5,6,7,8,9};

可以只給部分元素賦值,當{}中元素少于元素個數(shù)時,系統(tǒng)自動給前

面元素賦值,其余元素自動賦0。

Inta[10]={l,2,3,4,5};

只能給逐個元素賦值,而不能給數(shù)組整體賦值。

O給十個元素全部賦3,只能寫為:

inta[10]={3,3,3,3,3,3,3,3,3,3};

O而不能寫為:inta[10]=3;

在定義數(shù)組時,若要給全部元素賦值,可以省略數(shù)組元素的長度。

O如:inta[5]={l,2,3,4,5};

O可寫為:inta[]={l,2,3,4,5);

二維數(shù)組的定義:

類型變量名[常量表達式1][常量表達式2]

二位數(shù)組的運用:

數(shù)組名[下標1][下標2]

數(shù)組中元素依次:

C語言中,二維數(shù)組是按行儲存的。

?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}};

如對全部元素賦值,行下表可以省略,但列下表不能省略。

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ù)組長度,則將這些字符賦給數(shù)

組中前面的那些元素,其余元素自動定位空字符。

字符'\0'作為字符串的結(jié)束標記。

字符串處理函數(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碼依次比較兩個字符串,返回比較結(jié)果。

字符串1二字符串2,返回值二0;

字符串1>字符串2,返回值>0;

字符串k字符串2,返回值<0;

Strlen(字符串)

返回字符串中包含的字符個數(shù)(不包括結(jié)束標記'\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)體可以嵌套引用,即一個結(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)體變量是不同的概念,相當于變量類型和變量。

只能對變量賦值,存取或運算,而不能對一個類型賦值,存取或運算。

在編譯時,對類型是不安排空間的,只對變量安排空間。

定義結(jié)構(gòu)體類型的變量:

1.先聲明結(jié)構(gòu)體類型,再定義該類型變量

structstudent

(

intnum;charname[20];

charsex;intage;

floatscore;charaddr[30];

);

structstudentstul,stu2;

2.在聲明類型的同時定義變量

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};

運用結(jié)構(gòu)體變量:只能通過成員運算符引用結(jié)構(gòu)體變量的各個成員,

一般不能對結(jié)構(gòu)體變量整體運用。

O結(jié)構(gòu)體變量名.成員名

O如:stul.numbirthday,year

假如成員本身又是一個結(jié)構(gòu)體類型,則要用若干個成員運算符,一級

一級找到最低一級的成員。

O如;

對結(jié)構(gòu)體變量的成員可以像一般變量一樣進行各種運算。

stul.num++;

類型定義在前,不安排內(nèi)存,變量定義后,給變量安排一段連續(xù)的內(nèi)

存單元。.

結(jié)構(gòu)體成員名可及程序中的其他變量同名,二者占不同的內(nèi)存單元互

不干擾。.

結(jié)構(gòu)體數(shù)組:就是數(shù)組中的每一個元素都是一個結(jié)構(gòu)體類型的變量。

structPerson

(

charname[20];

intnum;

}teacher[3]={"Li",1,"Zhang”,2,"Sun”,3};

指向結(jié)構(gòu)體變量的指針:

指向結(jié)構(gòu)體對象的指針變量既可以指向結(jié)構(gòu)體變量,也可以用來指向

結(jié)構(gòu)體數(shù)組中的元素。

指向結(jié)構(gòu)圖變量的指針,其類型必需及結(jié)構(gòu)體變量類型相同。

structStudent*p;

為了運用便利和直觀,C語言允許把(*p).num用p->num來代替。

結(jié)構(gòu)體變量做函數(shù)參數(shù):

用結(jié)構(gòu)體變量的成員作參數(shù):

例如,用num或stu[2].name作函數(shù)實參,將實參值傳給形

用結(jié)構(gòu)體變量做參數(shù):

用結(jié)構(gòu)體變量做實參時,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部按

依次傳給形參,形參也必需是同類型的結(jié)構(gòu)體變量。

用指向結(jié)構(gòu)體變量:

指針做實參,將結(jié)構(gòu)體變量的地址傳給形參。

八指針

內(nèi)存單元的地址稱之為指針。

變量A中存放變量3的地址,稱A是B的指針,即A指向B.

定義指針變量:

Type*name

type可以時C語言中的任何一種類型。

指針運算符:

&一元運算符,返回變量的內(nèi)存地址。

*一元運算符,返回指針所指向變量的值。

指針指向變量:

Inta;

Int*p;

P=&a;

指針賦值:及其他變量一樣,指針變量也可以出現(xiàn)在賦值語句中,將

一個指針變量的值賦給另一個指針變量。

指針運算:+和-

Int*p,當前p的值為2000,由于整型數(shù)占4個字節(jié),p++的值將變

成2004,p—值將變?yōu)?996.p每遞增一次就指向下一個整形數(shù),遞

減時也一樣。

指針比較:

int*p=10,*q=20;

if(p<q)-

?比較的是兩個指針所指向的內(nèi)存地址的大小

指針及數(shù)組:

指針及數(shù)組是緊密相連的。一個變量有地址,一個數(shù)組包含若干

個元素,每個元素都有相應(yīng)地址,指針變量可以指向數(shù)組元素。

Inta[10];

數(shù)組名a其實就是一個地址值,記錄的數(shù)組起先的地址,即a[0]

地址。.

通過指針引用數(shù)組元素:

(1)下標法,如a[i]形式

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論