第2章數(shù)據(jù)類型與常用庫函數(shù)_第1頁
第2章數(shù)據(jù)類型與常用庫函數(shù)_第2頁
第2章數(shù)據(jù)類型與常用庫函數(shù)_第3頁
第2章數(shù)據(jù)類型與常用庫函數(shù)_第4頁
第2章數(shù)據(jù)類型與常用庫函數(shù)_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本章要求:本章難點:各種數(shù)據(jù)類型的數(shù)據(jù)在內(nèi)存中的存放形式本章重點:變量與常量的概念第2章數(shù)據(jù)類型與常用庫函數(shù)掌握各種常用數(shù)據(jù)類型的數(shù)據(jù)在內(nèi)存中的存放形式掌握常量的分類,變量的定義和變量名的命名規(guī)則理解指針的含義,掌握指針變量的定義及簡單應用掌握一些常用內(nèi)部函數(shù)的使用第2章數(shù)據(jù)類型、運算符和表達式2第2章數(shù)據(jù)類型、運算符和表達式

2.1C語言的數(shù)據(jù)類型2.2常

2.3變量2.4指針變量

2.5標準輸入/輸出函數(shù)用法2.6常用庫函數(shù)第2章數(shù)據(jù)類型、運算符和表達式32.1C語言的數(shù)據(jù)類型

(引例)例2-1

下面是計算兩個數(shù)據(jù)參與算術(shù)運算的程序,請分析其結(jié)果。voidmain(){inta,b,c,x,y; /*定義a,b,c,x,y為整型變量*/a=300;b=500;c=a+b;x=a*b;y=a/b;/*a除以b,其商賦值給變量y*/printf("c=%d,x=%d,y=%d",c,x,y);}程序運行結(jié)果如右圖第2章數(shù)據(jù)類型、運算符和表達式42.1C語言的數(shù)據(jù)類型2.1.1C語言數(shù)據(jù)類型概述1.基本數(shù)據(jù)類型(整型、實型、字符型)

2.構(gòu)造數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)體、共用體類型、枚舉類型)3.指針類型4.空類型(void)

注意:在程序中用到的常量與變量必須是以上一種數(shù)據(jù)類型;正確地區(qū)分和使用不同的數(shù)據(jù)類型,可使程序運行時占用較少的內(nèi)存,確保程序運行的正確性和可靠性。第2章數(shù)據(jù)類型、運算符和表達式52.1C語言的數(shù)據(jù)類型2.1.1C語言數(shù)據(jù)類型概述第2章數(shù)據(jù)類型、運算符和表達式62.1.2基本數(shù)據(jù)類型

基本數(shù)據(jù)類型是構(gòu)成C語言的數(shù)據(jù)類型的最基本要素?;緮?shù)據(jù)類型包括:整型(int)

實型(單精度float和雙精度double)

字符型(char)2.1C語言的數(shù)據(jù)類型第2章數(shù)據(jù)類型、運算符和表達式7整型數(shù)據(jù)的取值和取值范圍類型說明符數(shù)的范圍分配字節(jié)數(shù)

int-32768~327672字節(jié)

shortint/short-32768~327672字節(jié)

long-2147483648~21474836474字節(jié)unsignedint/unsigned0~655352字節(jié)unsignedshortint0~655352字節(jié)unsignedlongint0~4字節(jié)2.1C語言的數(shù)據(jù)類型第2章數(shù)據(jù)類型、運算符和表達式8

使用C的數(shù)據(jù)(變量或常量),應該搞清楚以下幾點:(1)它的數(shù)據(jù)類型;(2)此類數(shù)據(jù)在內(nèi)存中的存儲形式、占用的字節(jié)數(shù);(3)數(shù)據(jù)的取值范圍;(4)數(shù)據(jù)能參與的運算;(5)數(shù)據(jù)的有效范圍(是全局、局部)、生存周期(是動態(tài)還是靜態(tài)變量)。01111111111111111例如:一個整型(int)數(shù)據(jù)的最大值符號位2.1C語言的數(shù)據(jù)類型第2章數(shù)據(jù)類型、運算符和表達式91.機器數(shù):用“0”表示正數(shù),“1”表示負數(shù),其余位仍表示數(shù)值。把在機器內(nèi)存儲的正、負號數(shù)字化的數(shù)稱為機器數(shù)。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

機器數(shù)與原碼、補碼和反碼表示

例如,C語言中的基本整型數(shù)據(jù)在計算機中通常用16位(即2個字節(jié))來存儲,如圖所示的是十進制數(shù)67和-67在計算機中的存儲形式。第2章數(shù)據(jù)類型、運算符和表達式102.原碼表示法

原碼表示方法中,數(shù)值用絕對值表示,在數(shù)值的最左邊用“0”和“1”分別表示正數(shù)和負數(shù),書寫成[X]原表示X的原碼。

例如,當n=16(即使用2個字節(jié)來存儲),十進制數(shù)+67和-67的原碼表示如圖2-3所示,記為:[+67]原=0000000001000011[-67]原=10000000010000112.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式112.原碼表示法從定義可以看出,在原碼的表示中,有以下兩個特點:(1)最高位為符號位,正數(shù)為0,負數(shù)為1,其余n-1位是X的絕對值的二進制表示。(2)0的原碼有兩種表示:[+0]原=0000000000000000[-0]原=1000000000000000因此,原碼表示中,數(shù)值0不是唯一的。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式123.反碼表示法

用[X]反表示X的反碼。如果機器的字長為n,則反碼的定義如下:

例如,當n=16,十進制數(shù)+67和-67的反碼表示為:[+67]反=0000000001000011[-67]反=11111111101111002.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式133.反碼表示法

由此可以看出,在反碼的表示中,有以下特點:(1)正數(shù)的反碼與原碼相同,負數(shù)的反碼是其絕對值的二進制表示按各位取反(0變1,1變0)所得的表示,其中符號位不變。(2)0在反碼表示中也有兩種表示:

[+0]反=0000000000000000[-0]反=1111111111111111由此可見,0在反碼表示(即數(shù)值0)中也不是唯一的。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式144.補碼表示法

用[X]補表示X的補碼。設(shè)機器的字長為n,則補碼的定義如下:

例如,當n=16,十進制數(shù)+67和-67的補碼表示為:[+67]補=0000000001000011[-67]補=11111111101111012.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式154.補碼表示法

在補碼的表示中,有以下特點:(1)正數(shù)的補碼與原碼、反碼相同,負數(shù)的補碼是其絕對值的二進制表示按各位取反(0變1,1變0)加1,其中符號位不變,即為其反碼+1。(2)0在補碼表示中:[+0]補=[-0]補=0000000000000000,因此,數(shù)值0的補碼表示是唯一的。說明:由于補碼運算方便,所以在計算機中廣泛使用。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式16

大多數(shù)計算機系統(tǒng)采用補碼來表示整數(shù)。原因在于:使用補碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數(shù)相加時,如果最高位(符號位)有進位,則進位被舍棄。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式17將一個負數(shù)的補碼數(shù)轉(zhuǎn)換成十進制數(shù)的步驟如下:(1)首先將各位取反。(2)將其轉(zhuǎn)換為十進制數(shù),并在前加一負號(3)對所得到的數(shù)再減1,即得到該數(shù)的十進制數(shù)。例如:求補碼1111111110111101對應的十進制數(shù),其步驟:取反:0000000001000010;轉(zhuǎn)換為十進制數(shù),加負號得:-66,再減1,則為-67。按照上述方法,不難求得: 補碼1111111111111111對應的十進制數(shù)是:-1。 補碼1000000000000000對應的十進制數(shù)是:-32768(計算機中整數(shù)是最小值)。

5.由補碼數(shù)求對應的十進制數(shù)

2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式定點數(shù)和浮點數(shù)

1.整數(shù)的表示——定點數(shù)

符號位數(shù)值部分如果計算機用N位來表示一個帶符號的整數(shù)M,可寫成:M=NsNn-1Nn-2…N2N1N0Ns為符號位M的取值范圍:-2n≤M≤2n-1

例如,整數(shù)194采用定點數(shù)存儲形式,如下圖所示:

2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式2.實數(shù)的表示——浮點數(shù)

在計算機中一個浮點數(shù)由兩部分構(gòu)成:階碼和尾數(shù),階碼是整數(shù),尾數(shù)是純小數(shù)。即可表示為:M=2P×S

其中,P是一個二進制整數(shù),S是二進制小數(shù)。這里稱P為數(shù)M的階碼,階碼P指明了小數(shù)點的位置。S為數(shù)M的尾數(shù),S表示了數(shù)M的全部有效數(shù)字。階符PS表示階碼的正負,尾符SS確定數(shù)據(jù)的正負。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

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

實型數(shù)據(jù)是采用浮點數(shù)的存放形式存儲的。一般微型計算機中單精度(float類型)使用4個字節(jié)來存儲,通常階碼及階符占1個字節(jié),尾數(shù)及尾符占3個字節(jié),階符和尾符各占1個二進制位。

float類型的數(shù)值范圍是-2P~2P,其中P為7個二進制位表的最大數(shù)(1111111),即127,所以float類型的數(shù)值范圍是-2P~2P,即-2127~2127,即-1038

~1038。

2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式字符的存儲形式——ASCII碼

目前計算機中普遍采用的是ASCII(AmericanStandardCodeforInformationInterchange)碼,即美國信息交換標準代碼。ASCII碼有7位版本和8位版本兩種,國際上通用的是7位版本,7位版本的ASCII碼有128個元素,只需用7個二進制位(27=128)表示,其中控制字符34個,阿拉伯數(shù)字10個,大小寫英文字母52個,各種標點符號和運算符號32個。在計算機中實際用8位表示一個字符,最高位為“0”。標準ASCII碼共128個符號(參見附錄)。2.1.3各類數(shù)據(jù)在內(nèi)存中的存放方式

第2章數(shù)據(jù)類型、運算符和表達式222.2常量2.2.1數(shù)值常量1.整型常量(1)十進制整常數(shù)

237-56801627(2)八進制整常數(shù)八進制整常數(shù)必須以0開頭,即以0作為八進制數(shù)的前綴。

015(十進制為13)0101(十進制為65)

07908001定義:在程序運行時,其值不能被改變的量叫常量。如5,3.14159,‘a(chǎn)’

等不合法的八進制數(shù)不合法的八進制數(shù)第2章數(shù)據(jù)類型、運算符和表達式232.2常量(3)十六進制整數(shù)(前綴為0X)

0X2A(十進制為42)0XA0(十進制為160)

0XFFFF(十進制為65535)

不合法的十六進制整常數(shù):

5A(無前綴0X)0X3H(含有非十六進制數(shù)碼)

說明:若要表示長整型(long)整數(shù),在數(shù)的最后加表示長整型的后綴修飾符號字母“l(fā)”

。如:1250125l

0X125l

等價于125、(125)8、(125)16

25和25l的區(qū)別,前者用2個字節(jié)存儲,后者則使用4個字節(jié)存儲。第2章數(shù)據(jù)類型、運算符和表達式242.2常量例2-2

通過以下例題來說明整型常量的三種表示方法及相互關(guān)系intmain(){intx=123,y=0123,z=0x123;printf("%d%d%d\n",x,y,z);/*以十進制形式%d輸出*/printf("%o%o%o\n",x,y,z);/*以八進制形式%o輸出*/printf("%x%x%x\n",x,y,z);/*以十六進制形式%x輸出*/}第2章數(shù)據(jù)類型、運算符和表達式252.實型常量實型也稱為浮點型,實型常量也稱為實數(shù)或者浮點數(shù)。在C語言中,實數(shù)只采用十進制。(1)小數(shù)形式由數(shù)碼0-9和小數(shù)點組成。例如:0.123.123123.0-123等均為合法的實數(shù)。(2)指數(shù)形式由十進制數(shù),加階碼標志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。其一般形式為aEn

(a為十進制數(shù)、n為十進制整數(shù)),值為

a*10±n2.2常量第2章數(shù)據(jù)類型、運算符和表達式262.2常量例如:1.25E+31.25e+31.25×103

1250.0說明:當階碼為正數(shù)時,正號可以省略。即1.25E+3等價于1.25E3;

同一個實數(shù)可以有多種表示形式,例如:1250.0可以用0.0125E+5,0.125E+4,1.25E+3,12.5E+2,125E+1。一般將1.25×103稱為“規(guī)范化的指數(shù)形式”。第2章數(shù)據(jù)類型、運算符和表達式27

一般PC機中單精度型占4個字節(jié)(32位)內(nèi)存空間,其數(shù)值范圍為3.4E-38~3.4E+38,只能提供7位有效數(shù)字。雙精度型占8個字節(jié)(64位)內(nèi)存空間,其數(shù)值范圍為1.7E-308~1.7E+308,可提供16位有效數(shù)字。實型變量由于有效數(shù)字的限制,可能出現(xiàn)舍入誤差。

實型常數(shù)不分單、雙精度,都按雙精度型處理。

單精度型float雙精度型double實型數(shù)分為兩類:2.2常量第2章數(shù)據(jù)類型、運算符和表達式282.2常量2.2.2字符常量

字符常量是用單引號括起來的一個字符。例如'a','b','=','+','?'都是合法字符常量。在C語言中,字符常量有以下特點:1.字符常量只能用單引號括起來,不能用雙引號或其它括號;2.字符常量只能是單個字符,不能是字符串;3.字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能再作為數(shù)字參與數(shù)值運算。如‘5’和5是不同的?!?’是字符常量,不能作為數(shù)值5參與運算。第2章數(shù)據(jù)類型、運算符和表達式292.2常量

字符值存放到一個字符變量中,實際是將字符的ASCII碼值存放在變量的內(nèi)存單元之中的。如‘A’的十進制ASCII碼是65。若將字符‘A’存到內(nèi)存變量中,實際存放形式是:01000001字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法第2章數(shù)據(jù)類型、運算符和表達式302.2常量

在C語言中,字符數(shù)據(jù)與整型數(shù)據(jù)可以通用,允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。整型量為二字節(jié)量,字符量為單字節(jié)量,當整型量按字符型量處理時,只有低八位字節(jié)參與處理。說明:voidmain(){intx=32770;chary;y=x;printf("%d\n",y);/*以十進制形式%d輸出*/}第2章數(shù)據(jù)類型、運算符和表達式31

2.2常量2.2.3字符串常量C語言中的字符串常量是由一對雙引號括起來的字符序列。每個字符串最后有一結(jié)束標志'\0'。例如:"ABC","A","123lkdf"

字符串常量在內(nèi)存中存儲時,系統(tǒng)自動在字符串的末尾加一個“串結(jié)束標志“,因此在程序中,長度為n個字符的字符串常量,在內(nèi)存中占有n+1個字節(jié)的存儲空間。第2章數(shù)據(jù)類型、運算符和表達式322.2常量例如:'a'與"a"是C語言中兩種完全不同類型的數(shù)據(jù)。aa\0'a'與"a"在內(nèi)存的存儲形式注意:不要將字符常量和字符串常量混淆例如,字符串“ABCDEF”有6個字符,存儲于內(nèi)存中時,共占7個字節(jié),最后一個字節(jié)為"\0"第2章數(shù)據(jù)類型、運算符和表達式33

轉(zhuǎn)義字符是一種特殊的字符常量,以反斜線“\”開頭,后跟一個或幾個字符。轉(zhuǎn)義字符主要用來表示用一般字符不便于表示的控制代碼。常用的轉(zhuǎn)義字符及其含義:

\n回車換行 \t橫向跳到下一制表位置

\v豎向跳格 \b退格

\r回車 \\反斜線符“\”

\a鳴鈴

\ddd1~3位八進制數(shù)所代表的字符

\xhh1~2位十六進制數(shù)所代表的字符2.2常量2.2.4轉(zhuǎn)義字符第2章數(shù)據(jù)類型、運算符和表達式34例2-1:#include<stdio.h>intmain(){printf("abc\tde\bfghi\n");printf("a=65b=\101c=\x41\n");return0;}abcdfghia=65

b=Ac=A輸出結(jié)果:2.2常量第2章數(shù)據(jù)類型、運算符和表達式352.2.5符號常量

符號常量是用一個符號表示一個多次常用的常量。

C語言中使用命令#define來定義:

#define符號常量名標識符常數(shù)表達式優(yōu)點:符號常量使程序易于閱讀和修改。2.2常量無分號例如,一個程序中多處用到學生人數(shù)60,當有學生人數(shù)改變?yōu)?5,修改這個程序很困難。而使用符號常量,只要將#defineNUM60改為#defineNUM65,就可以了。第2章數(shù)據(jù)類型、運算符和表達式36例2-4

:求一個半徑為r的球的體積和表面積的C程序#definePI3.14159/*定義PI為符號常量,值為3.1415*/intmain(){floatv,s,r;scanf(“%f”,&r);v=4.0/3.0*PI*r*r*rs=4*PI*r*r;printf("v=%f,s=%f\n",v,s);return0;}說明:(1)符號常量名常常用大寫字母、變量名用小寫字母。(2)符號常量不能在其作用域范圍內(nèi)重新賦值。2.2常量第2章數(shù)據(jù)類型、運算符和表達式372.2常量

有關(guān)符號常量的幾點說明:

1)符號常量標識符:按C語言標識符的命名規(guī)則。為便于與一般變量區(qū)別,符號常量標識符名通常采用大寫字母。

2)宏定義不是C語句,不必在行末加分號。如果加分號,會把分號當作符號串的一部分。

3)宏定義中的常數(shù)表達式可以是:值常量、在此前已聲明過的符號常量、由這些常量與運算符組成的表達式。例如,

#definePI3.1515926535

#definePI22*PI

/*定義PI2符號常量,值為2*3.1415926535*/

第2章數(shù)據(jù)類型、運算符和表達式382.3變量

2.3.1變量的定義

變量是在程序運行時,其值能被改變的量變量的定義包括:變量名和相應的數(shù)據(jù)類型通過名字來引用一個變量,而數(shù)據(jù)類型則決定了該變量的存儲方式和在內(nèi)存中占據(jù)存儲單元的大小

說明:變量名和變量值這兩個概念的區(qū)別

intx=20;第2章數(shù)據(jù)類型、運算符和表達式39C語言中使用的變量都要作類型強制定義,即要求“先定義,后使用”的原則。其目的:

1)保證程序中變量名使用的正確性

2)編譯程序為其分配相應的儲存單元

3)保證運算的合法性變量定義形式:類型說明符變量名列表;2.3變量

charch;/*定義ch為字符型變量*/inti,j;/*定義i,j為基本整型變量*/floatx,y,z;/*定義x,y,z單精度實型變量*/doublesum,t;/*定義sum,t雙精度實型變量*/第2章數(shù)據(jù)類型、運算符和表達式402.3.2變量的賦初值C語言中,當定義一個變量后,系統(tǒng)只是按定義的數(shù)據(jù)類型分配其相應的存儲單元,并不對其單元初始化,如果在賦初值之前直接使用該變量,則是一個不定值。intmain(){intk;printf(“k=%d\n”,k);return0;}2.3變量

程序運行,輸出k的值就是一個無意義的不定值,并在不同系統(tǒng)環(huán)境下運行的結(jié)果也可能完全不同。第2章數(shù)據(jù)類型、運算符和表達式41變量賦初值的一般形式為:(1)類型說明符

變量1=值1,變量2=值2,……;

(2)類型說明符

變量1,變量2,變量3;變量1=值1;變量2=值2;……例如:

inta=10,b=10,c=10

等價于inta,b,c;a=10;b=10;c=10;2.3變量第2章數(shù)據(jù)類型、運算符和表達式42注意:(1)在變量說明中不允許連續(xù)賦值,但在變量定義后,可以使用連續(xù)賦值語句初始化;如:inta=b=c=1;是不合法的;

inta,b,c;a=b=c=1;是合法的(2)C語言中變量定義后若沒有賦值,系統(tǒng)并不自動賦0值,如果直接使用它,其值將是“不確定的”。2.3變量

第2章數(shù)據(jù)類型、運算符和表達式43整型數(shù)據(jù)的溢出intmain(){inta,b;a=32767;b=a+1;printf("a=%d,b=%d\n",a,b);return0;}運行結(jié)果是:a=32767,b=-32768

C語言中,數(shù)據(jù)超出其范圍,即“溢出”,不報知錯誤信息,程序仍然能運行,但可能結(jié)果不正確的結(jié)果。2.3變量

a:0111111111111111->32767b:1000000000000000->-32768第2章數(shù)據(jù)類型、運算符和表達式442.4指針變量

指針是C語言中廣泛使用的一種數(shù)據(jù)類型。

運用指針編程是C語言最主要的風格之一。

利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu);能很方便地使用數(shù)組和字符串;并能象匯編語言一樣處理內(nèi)存地址,從而編出精練而高效的程序。指針極大地豐富了C語言的功能。學習指針是學習C語言中最重要的一環(huán),能否正確理解和使用指針是我們是否掌握C語言的一個標志。指針也是C語言中最為困難的一部分,在學習中除了要正確理解基本概念,還必須要多編程,上機調(diào)試。第2章數(shù)據(jù)類型、運算符和表達式452.4.1地址與指針的概念

2.4指針變量

程序是由CPU控制和運行的,在執(zhí)行過程中需要處理各種數(shù)據(jù),這些數(shù)據(jù)被存放在內(nèi)存中。

為了便于管理,內(nèi)存空間被劃分成若干個大小相同(1個字節(jié))的存儲單元,里面存放著各種數(shù)據(jù)。內(nèi)存中每一個存儲單元也有一個編號,這個編號被稱為地址。通過地址就可以十分方便地訪問指定的存儲單元。變量的地址是存儲它的第1個單元的編號。

常把變量的地址稱為指針。

地址:內(nèi)存單元的編號,通常一個字節(jié)一個編號。指針:內(nèi)存單元的地址。第2章數(shù)據(jù)類型、運算符和表達式462.4指針變量

我們也稱為指針第2章數(shù)據(jù)類型、運算符和表達式472.4.2變量的存儲與訪問

直接訪問,即系統(tǒng)直接根據(jù)變量的地址找到相應的存儲空間。

間接訪問的基本思想為:將要訪問變量a的地址存放在另一個變量p中,當需要訪問變量a時,先取出變量p的內(nèi)容即變量a的地址,再根據(jù)此地址找到變量a所對應的存儲空間。能夠存放其它變量地址的變量稱作指針變量。變量的存儲與訪問

2.4指針變量

第2章數(shù)據(jù)類型、運算符和表達式482.4指針變量

一個指針是一個地址,是一個常量。一個指針變量卻可以被賦予不同的指針值,是變量。但常把指針變量簡稱為指針。為了避免混淆,我們約定:“指針”是指地址,是常量,“指針變量”是指取值為地址的變量。定義指針變量的目的是為了通過指針去訪問內(nèi)存單元。注意:第2章數(shù)據(jù)類型、運算符和表達式492.4.3指針變量的定義

2.4指針變量

指針變量定義的一般形式:類型符*標識符;說明:

1)“*”直接修飾的“標識符”是指針變量。如:

int*p,x;/*p是指針變量,x是整型變量*/2)指針所指對象的類型稱為指針的基準類型。如:

int*p1;/*p1的基準類型為整型,即p1所指向?qū)ο蟮念愋褪钦?/char*p2;/*p2的基準類型為字符型,即p2所指向?qū)ο箢愋褪亲址?/第2章數(shù)據(jù)類型、運算符和表達式503)指針變量只能指向類型與其基準類型相同的變量。例如:intx,*p1=&x;chary,*p2=&y;

在以上兩句中,p1可以指向x,但不能指向y;p2可以指向y,但不能指向x。

注意:既然指針變量的內(nèi)容都是某個地址,為什么還要對其規(guī)定不同的基類型?這個問題仍然與上一節(jié)所討論的變量的存儲與訪問過程有關(guān)。不同類型的變量所占據(jù)的存儲空間大小不盡相同,而變量的地址僅僅是其存儲空間的起始地址,系統(tǒng)需要綜合變量地址和變量類型兩方面的信息,才能正確訪問變量的整個存儲空間。

2.4指針變量

第2章數(shù)據(jù)類型、運算符和表達式512.4.4指針變量的初始化

指針變量同普通變量一樣,使用之前不僅要定義說明,而且必須賦予具體的值。在最初學習變量的使用方法時,我們知道當定義一個變量后,系統(tǒng)會為其分配一塊存儲空間,但系統(tǒng)并不會自動初始化存儲空間中的內(nèi)容。2.4指針變量

例如以下程序:#include<stdio.h>intmain(){inta;printf("a=%d\n",a);return0;}

第2章數(shù)據(jù)類型、運算符和表達式52指針變量的說明1)指針變量所指向的存儲空間恰好是一塊空閑空間,即未被系統(tǒng)使用或未被分配給其他變量,此時不會出錯。

2)指針變量所指向的存儲空間正被系統(tǒng)使用或已被分配給其他變量,此時將會帶來嚴重后果。以下程序就是對指針變量的一種錯誤引用。2.4指針變量

#include<stdio.h>intmain(){int*p;*p=5;printf("*p=%d\n",*p);return0;

}

第2章數(shù)據(jù)類型、運算符和表達式53

初始化指針變量的方法主要有以下3種:

1)將某個已經(jīng)定義過的數(shù)據(jù)類型與指針變量基類型相同的變量地址賦值給指針變量。例如:inta,*p;p=&a;/*此處兩語句可合并寫成:inta,*p=&a;*/2)將某個已經(jīng)初始化過的基類型相同的指針變量賦值給指針變量。例如:inta,*p1,*p2=&a;p1=p2;/*p2賦值給p1,讓p1也指向p2所指向的變量*/3)使用malloc函數(shù)或calloc函數(shù),給它們分配一個自由的內(nèi)存空間地址。關(guān)于它們的使用,將在后面的章節(jié)進行介紹。

2.4指針變量

第2章數(shù)據(jù)類型、運算符和表達式542.4指針變量

指針變量同普通變量一樣,使用之前不僅要定義說明,而且必須賦予具體的值。未經(jīng)賦值的指針變量不能使用,否則將造成系統(tǒng)混亂,甚至死機。指針變量的賦值只能賦予地址,不能賦予任何其它數(shù)據(jù),否則將引起錯誤。注意:(1)指針變量初始化的方法:

inta;int*p=&a;(2)賦值語句的方法:

inta,*p;p=&a;第2章數(shù)據(jù)類型、運算符和表達式552.4.5指針變量的訪問

2.4指針變量

通過使用指針運算符*(或稱間接訪問運算符)可以間接訪問指針變量所指向的變量。格式:*指針變量

獲取變量地址可以通過取地址運算符&第2章數(shù)據(jù)類型、運算符和表達式562.4指針變量

例:intmain(){inta=5,*p=&a;printf("%d",*p);return0;}

注意:指針運算符*和指針變量說明中的指針說明符*是不相同。在指針變量說明中,*是類型說明符,表示其后的變量是指針類型。表達式中出現(xiàn)的*則是一個運算符用以表示指針變量所指的變量。兩個*的意義相同么?第2章數(shù)據(jù)類型、運算符和表達式57例2-5

通過指針變量間接訪問另一個變量。#include<stdio.h>intmain(){inta,b,*p1,*p2;a=5;b=8;p1=&a;p2=&b;printf("a=%d,b=%d\n",*p1,*p2);*p1=*p1+*p2; /*相當于a=a+b;*/printf("a+b=%d\n",*p1); /*相當于printf("a+b=%d\n",a);*/return0;}2.4指針變量

第2章數(shù)據(jù)類型、運算符和表達式582.4指針變量

intmain(){inta=1,b=2,*pa=&a,*pb=&b;

pa=pb;printf("a=%d\nb=%d\n*pa=%d\n*pb=%d\n",a,b,*pa,*pb);return0;}例如:1a&b&bpb2bpa執(zhí)行pa=pb;1a&a&bpb2bpa初始化若改為*pa=*pb;有何不同?第2章數(shù)據(jù)類型、運算符和表達式592.4指針變量

intmain(){inta=1,b=2,*pa=&a,*pb=&b;*pa=*pb;printf("a=%d\nb=%d\n*pa=%d\n*pb=%d\n",a,b,*pa,*pb);return0;}例如:1a&a&bpb2bpa初始化2a&a&bpb2bpa執(zhí)行*pa=*pb;第2章數(shù)據(jù)類型、運算符和表達式602.4指針變量

intmain(){inta,b,*p,*p1=&a,*p2=&b;scanf("%d%d",p1,p2);if(a<b){p=p1;p1=p2;p2=p;}printf("\na=%d,b=%d\n\n",a,b);printf("max=%d,min=%d\n",*p1,*p2);return0;}例如:輸入a、b兩個整數(shù),按先大后小的順序輸出。5a&ap1&bp29b5a&bp1&ap29bp第2章數(shù)據(jù)類型、運算符和表達式612.4指針變量

指針變量可以賦予0值,p=0表明p是空指針,它不指向任何變量。在頭文件"stdio.h"中有:#defineNULL0

在C程序中常使用int*p=NULL;讓指針變量p為空指針。對指針變量賦0值和不賦值是不同的。指針變量未賦值時,可以是任意值,是不能使用的。否則將造成意外錯誤。而指針變量賦0值后,則可以使用,只是它不指向具體的變量而已。說明:62數(shù)據(jù)輸入/輸出的概念內(nèi)存RAM從鍵盤將數(shù)據(jù)輸入從數(shù)據(jù)文件讀入將數(shù)據(jù)輸出到屏幕將數(shù)據(jù)輸出到文件數(shù)據(jù)輸入/輸出是相對計算機內(nèi)存2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式63

在C語言中所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的,因此都是函數(shù)語句。在C語言中使用庫函數(shù)時,要使用預編譯命令#include將相關(guān)的頭文件(*.h)包含到用戶源文件中。使用形式:

#include“頭文件”

#include<頭文件>

說明:

1.標準輸入/輸出頭文件是:stdio.h2.printf()和scanf()函數(shù)不需要頭包含文件2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式642.5.1數(shù)據(jù)格式輸入-——scanf()函數(shù)scanf()的功能:從鍵盤上輸入數(shù)據(jù),該輸入數(shù)據(jù)按指定的輸入格式被賦給相應的輸入項。函數(shù)一般格式為:

scanf("控制字符串",輸入項地址列表);

控制字符串規(guī)定數(shù)據(jù)的輸入格式,其內(nèi)容由格式說明和普通字符兩部分組成。

輸入項地址列表由一個或多個變量地址組成,各變量地址之間用逗號“,”分隔。

scanf()中各變量要加地址操作符,表示如下:

&變量名2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式65控制字符串的兩個組成部分:格式說明和普通字符。1.格式說明格式說明規(guī)定輸入項中的變量以何種類型的數(shù)據(jù)格式被輸入的,形式是:%[<修飾符>]<格式字符>

格式字符意義舉例輸入形式d輸入一個十進制整數(shù)scanf("%d",&a)15o輸入一個八進制整數(shù)scanf("%o",&a)015x輸入一個十六進制整數(shù)scanf("%x",&a)0x15f輸入一個小數(shù)形式浮點數(shù)scanf("%f",&x)35680e輸入一個指數(shù)形式浮點數(shù)scanf("%e",&x)3.568e+3c輸入一個字符scanf("%c",&ch)As輸入一個字符串scanf("%s",ps)ABCD2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式66各修飾符是可選的,這些修飾符是:(1)字段寬度例:scanf("%3d",&a);輸入123456,按寬度3輸入一個整數(shù)123賦給變量a(2)l和h

可與d、o、x一起使用,l表示輸入數(shù)據(jù)為長整數(shù),h表示輸入數(shù)據(jù)為短整數(shù),例:scanf("%ld%hd",&x,&i);x按長整型讀入,i按短整數(shù)讀入。(3)字符*表示按規(guī)定格式輸入但不賦予相應變量,作用是跳過相應的數(shù)據(jù)。例如:scanf(“%d%*d%d”,&x,&y);執(zhí)行該語句,若輸入為“123”,結(jié)果為x=1,y=3,2被跳過。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式672.普通字符(1)空格在有多個輸入項時,一般用空格或回車作為分隔符,若以空格作分隔符,則當輸入項中包含字符類型時,可能產(chǎn)生非預期的結(jié)果,例如:scanf("%d%c",&a,&ch);輸入32q期望a=32,ch=q,但實際上,分隔符空格被讀入并賦給ch。(2)可打印字符例如:scanf("%d,%d,%c",&a,&b,&ch);

當輸入為:1,2,q即:a=1,b=2,ch=q

若輸入為12q除a=1正確賦值外,對b與ch的賦值都不能正確賦值。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式68使用scanf函數(shù)還必須注意以下幾點:(2)在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格或回車作間隔。(3)如果格式控制串中有非格式字符則輸入時也要輸入該非格式字符。例如:scanf("a=%d,b=%d,c=%d",&a,&b,&c);

則輸入應為a=5,b=6,c=7(1)scanf函數(shù)中沒有精度控制。scanf("%5.2f",&a);是非法的。(4)在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式69

若輸入為:def

則把'd'賦予a,‘

’賦予b,'e'賦予c。只有當輸入為:def時,才能把'd'賦于a,'e'賦予b,'f'賦予c。如果在格式控制中加入空格作為間隔,如scanf(“%c%c%c”,&a,&b,&c);則輸入時各數(shù)據(jù)之間要加空格。

例如:main(){chara,b,c;printf("inputcharactera,b,c\n");scanf("%c%c%c",&a,&b,&c);printf("%c%c%c\n",a,b,c);}2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式70(5)如輸入的數(shù)據(jù)與輸出的類型不一致時,雖然編譯能夠通過,但結(jié)果將不正確。

intmain() {inta;printf("inputanumber\n"); scanf("%d",&a); printf("%ld",a);return0; }

由于輸入數(shù)據(jù)類型為整型,而輸出語句的格式串中說明為長整型,因此輸出結(jié)果和輸入數(shù)據(jù)不符。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式第3章簡單的C程序設(shè)計71例.編寫求梯形面積的程序,數(shù)據(jù)由鍵盤輸入。分析:設(shè)梯形上底為A,下底為B,高為H面積為S,則S=(A+B)*H/2程序如下: intmain(){floata,b,h,s;printf("pleaseinputa,b,h:");

scanf("%f%f%f",&a,&b,&h);s=0.5*(a+b)*h;printf("a=%6.3fb=%6.3fh=%6.3f\n",a,b,h);printf("s=%8.4f\n",s);return0;}2.5標準輸入/輸出函數(shù)的用法722.5.2數(shù)據(jù)格式輸出——printf()函數(shù)

格式化輸出函數(shù)printf()功能:按控制字符串規(guī)定的格式,向輸出設(shè)備輸出各輸出項。其基本格式為:printf(“控制字符串”,輸出項列表)輸出項可以是常量、變量、表達式,其類型與個數(shù)必須與控制字符串中格式字符的類型、個數(shù)一致、當有多個輸出項時,各項之間用逗號分隔??刂谱址筛袷秸f明和普通字符兩部分組成。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式731.格式說明一般格式為:%[<修飾符>]<格式字符>格式字符意義舉例輸出結(jié)果d按十進制整數(shù)輸出printf("%d",a)65o或O按八進制整數(shù)輸出printf("%o",a)101x或X按十六進制整數(shù)輸出printf("%x",a)41u按無符號整數(shù)輸出printf("%u",a)65c按字符型輸出printf("%c",a)As按字符串輸出printf("%s","aba")abcf按浮點型小數(shù)輸出printf("%f",x)3.141593e按科學計數(shù)法輸出printf("%e",x)3.141593e+00g按e和f格式中較短的一種輸出printf("%g",x)3.1415932.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式74注意:%o,%x,%u均輸出無符號整數(shù);單精度浮點數(shù)以%f形式輸出時,小數(shù)6位,有效數(shù)字7位;雙精度浮點數(shù)以%lf形式輸出時,小數(shù)6位,有效數(shù)字16位;%e形式輸出時小數(shù)6位,指數(shù)5位,其中e占1位,指數(shù)符號占1位,指數(shù)3位,并以規(guī)范化指數(shù)形式輸出。如1.234560e+002。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式75(1)

字段寬度修飾符字段寬度修飾符用于確定數(shù)據(jù)輸出的寬度、精度、小數(shù)位數(shù)、對齊方式等,用于產(chǎn)生更規(guī)范整齊的輸出。

修飾符格式說明意義m%md以寬度m輸出整型數(shù),不足m時,左補空格0m%0md以寬度m輸出整型數(shù),不足m時,左補零m.n%m.nf以寬度m輸出實型小數(shù),小數(shù)位為n位

用十進制整數(shù)來表示輸出的最少位數(shù)。若實際位數(shù)多于定義的寬度,則按實際位數(shù)輸出;若實際位數(shù)少于定義的寬度則補以空格或0。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式76例如:intmain(){inta=123;floatx=12.345678;printf("%5d,%5.2f\n",a,x);printf("%2d,%2.1f\n",a,x);return0;}程序的運行結(jié)果如下:說明:當指定寬度小于數(shù)據(jù)的實際寬度時,對整數(shù),按該數(shù)的實際寬度輸出。對浮點數(shù),相應小數(shù)位的數(shù)四舍五入。若度寬小于等于浮點數(shù)整數(shù)部分的寬度,則該浮點數(shù)按實際位數(shù)輸出,但小數(shù)位數(shù)仍遵守寬度修飾符給出的值。2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式77(2)對齊方式修飾符一般的輸出數(shù)據(jù)為右對齊格式,加“-”號,變?yōu)椤白髮R”方式。例如:voidmain(){inti=123;floata=12.34567;printf("%6d%10.4f\n",i,a);printf("%-6d%10.4f\n",i,a);printf("%6d%-10.4f\n",i,a);}程序運行結(jié)果如圖所示:2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式78(3)l和h

可以與輸出格式字符d、f、u等連用,以說明是用long型或short型格式輸出數(shù)據(jù),如:%hd短整型%lf雙精度型%ld長整型%hu無符號短整型2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式79普通字符包括可打印字符和轉(zhuǎn)義字符。可打印字符是說明字符,這些字符按原樣顯示在屏幕上。轉(zhuǎn)義字符是不可打印的字符,它們其實是一些控制字符,控制產(chǎn)生特殊的輸出效果。常用的有“\t”,“\n”,其中\(zhòng)t為水平制表符,作用是跳到下一個水平制表位,“\n”為回車換行符,遇到“\n”,顯示自動換到新的一行。2.普通字符2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式80例如:intmain(){inti=123;longn=456;floata=12.34567,y=20.5;printf("%d=4d\ta=%7.4f\n\tn=%lu\n",i,a,n);printf("y=%5.2f%\n",y);return0;}程序運行的輸出結(jié)果:2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式811.字符輸出函數(shù)——putchar()putchar()函數(shù)的格式:

putchar(ch);

該函數(shù)的功能是向顯示器終端輸出一個字符。其中,ch可以是一個字符變量或常量,也可以是一個轉(zhuǎn)義字符。說明:(1)putchar()函數(shù)只能用于單個字符的輸出,且一次只能輸出一個字符。(2)從功能角度printf()函數(shù)可以完全代替putchar()函數(shù),其等價形式:printf("%c",ch)。2.5標準輸入/輸出函數(shù)的用法2.5.3字符數(shù)據(jù)非格式輸入/輸出函數(shù)第2章數(shù)據(jù)類型、運算符和表達式82getchar()函數(shù)的格式:getchar();

getchar()函數(shù)作用:從鍵盤輸入一個字符。從功能上,scanf()函數(shù)可以完全代替getchar()函數(shù)。例:charc1; 則c1=getchar();

可使用等價語句:scanf("%c",&c1);2.字符輸入函數(shù)——getchar()2.5標準輸入/輸出函數(shù)的用法第2章數(shù)據(jù)類型、運算符和表達式第3章簡單的C程序設(shè)計83說明:(1)getchar()函數(shù)一次只能返回一個字符,即調(diào)用一次只能輸入一個字符。(2)程序第一次執(zhí)行g(shù)etchar()函數(shù)時,系統(tǒng)暫停等待用戶輸入,直到按回車鍵結(jié)束,如果用戶輸入了多個字符,則該函數(shù)只取第一個字符,多余的字符(包括換行符'\n')存放在鍵盤緩沖區(qū)中,如果程序再一次執(zhí)行g(shù)etchar()函數(shù),則程序就直接從鍵盤緩沖區(qū)讀入,直到讀完后,如果還有g(shù)etchar()函數(shù)才會暫停,再次等待用戶輸入。2.5標準輸入/輸出函數(shù)的用法第3章簡單的C程序設(shè)計84#include<stdio.h>intmain(){charc1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);

return0;}例如:當程序運行后:輸入abcdef,輸出為:ab2.5標準輸入/輸出函數(shù)的用法第3章簡單的C程序設(shè)計85例.

編一程序,從鍵盤輸入一個大寫字母,要求改用小寫字母輸出(提示:大寫字母對應的ASCII碼序號比相應的小寫字母的ASCII碼序號小32)。#include"stdio.h"intmain(){charc1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1+32;printf("%c,%d\n",c2,c2);

return0;}程序運行情況:A↙A,65a,972.5標準輸入/輸出函數(shù)的用法第3章簡單的C程序設(shè)計86例.輸入時間(小時,分和秒)然后輸出其計多少秒。分析:hh代表小時,mm代表分鐘,ss代表秒,tss代表總的秒數(shù)值,則:其總時間秒:tss=hh*3600+mm+60+ssintmain(){inthh,mm,ss;longtss;/*定義為長整型數(shù)據(jù),因int整數(shù)的最大數(shù)據(jù)是32767*/printf("Enterhh:mm:ss=");/*提示用戶輸入數(shù)據(jù)*/scanf("%d:%d:%d",&hh,&mm,&ss);/*輸入數(shù)據(jù)之間需用:分隔*/tss=hh*3600.0+mm*60+ss;printf("TheTotalsecond=%ld",tss);return0;}2.5標準輸入/輸出函數(shù)的用法第3章簡單的C程序設(shè)計87例.編一程序,求一內(nèi)半徑R1=10cm,外半徑R2=20cm的球環(huán)的體積。要求按四舍五入保留到小數(shù)點后4位。

#definePI3.1415926/*定義符號常量PI代表π*/intmain(){doubler1,r2;/*r1,r2表示球的內(nèi)外半徑*/doublevol;/*vol表示體積*/printf("Enterr1,r2=");scanf("%lf,%lf",&r1,&r2);/*輸入double數(shù)據(jù)使用%lf格式控制*/vol=4.0/3.0*PI*(r2*r2*r2-r1*r1*r1);printf("V=%10.4lf",vol);return0;}2.5標準輸入/輸出函數(shù)的用法第3章簡單的C程序設(shè)計88判斷題1.printf函數(shù)中的格式符“%c”只能用于輸出字符類型數(shù)據(jù)。練習

2.按格式符“%6.3f”輸出i(i=123.45)時,輸出結(jié)果為123.450。3.格式符“%f”不能用于輸入

double類型數(shù)據(jù)。4.不能用printf()函數(shù)輸出字符。對錯錯錯第3章簡單的C程序設(shè)計89填空題(1)inti=234,j=567;函數(shù)printf("%d%d\n",i,j)的輸出結(jié)果是

。練習

(2)inti=234;floatx=-513.624;函數(shù)printf(“i=%5dx=%7.4f\n”,i,x)的輸出結(jié)果是

。(3)floatalfa=60,pi=3.1415926535626;函數(shù)printf(“sin(%3.0f*%f/180)\n”,alfa,pi)的輸出結(jié)果是

。234567i=234x=-512.6240sin(60*3.141593/180)第3章簡單的C程序設(shè)計90(4)charch=’$’;floatx=153.45;函數(shù)printf(“%c%-8.2f\n”,ch,x)的輸出結(jié)果是

。練習

(5)intd=27;函數(shù)printf(“%-5d,%-5o,%-5x\n”,d,d,d)的輸出結(jié)果是

。(6)floatx1=13.24,x2=-78.32;

溫馨提示

  • 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

提交評論