常量與變量對于基本數(shù)據(jù)類型量按其取值是否可改變又分為_第1頁
常量與變量對于基本數(shù)據(jù)類型量按其取值是否可改變又分為_第2頁
常量與變量對于基本數(shù)據(jù)類型量按其取值是否可改變又分為_第3頁
常量與變量對于基本數(shù)據(jù)類型量按其取值是否可改變又分為_第4頁
常量與變量對于基本數(shù)據(jù)類型量按其取值是否可改變又分為_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2.3常量與變量對于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量兩種。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。它們可與數(shù)據(jù)類型結(jié)合起來分類。在程序中,常量是可以不經(jīng)說明而直接引用的,而變量則必須先定義后使用。2.3.1常量1、整型常量——整型常量就是整常數(shù)。在C語言中,使用的整常數(shù)有八進(jìn)制、十六進(jìn)制和十進(jìn)制三種。(1)十進(jìn)制整數(shù)是由不以0開頭的0~9的數(shù)字組成的數(shù)據(jù)。(2)八進(jìn)制整數(shù)是由以0開頭的0~7的數(shù)字組成的數(shù)據(jù)。(3)十六進(jìn)制整數(shù)是由以0x或0X開頭的0~9的數(shù)字及A~F的字母組成的數(shù)據(jù)。2、實型常量——實型也稱為浮點型。實型常量也稱為實數(shù)或者浮點數(shù)。在C語言中,實數(shù)只采用十進(jìn)制。它有二種形式:十進(jìn)制小數(shù)形式、指數(shù)形式。(1)十進(jìn)制數(shù)形式:由數(shù)碼0~9和小數(shù)點組成。(2)指數(shù)形式:由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。2.3.1常量1、整型常量C語言整型常量一般有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種表達(dá)形式:(1)十進(jìn)制整數(shù)的表示和數(shù)學(xué)上的表示相同,由數(shù)字0~9組成。如:0、10、365、-12等。(2)八進(jìn)制整數(shù)的表示以0開頭,由數(shù)字0~7組成。如:010、0365、-012、017等。(3)十六進(jìn)制整數(shù)的表示以0x或0X開頭,由數(shù)字0~9、a~z或A~Z組成。如:0x11、0Xffff、0xa5、-0XAC等。

C語言規(guī)定,凡是在整型數(shù)后加小寫字母l或大寫字母L作為長整數(shù)處理;凡是在整型數(shù)后加后綴“U”或者“u”,表示該數(shù)為無符號整型。2、實型常量在C語言中,實型常量只能用十進(jìn)制形式表示,不能用八進(jìn)制數(shù)和十六進(jìn)制數(shù)表示。實型常量的兩種表現(xiàn)形式:小數(shù)形式和指數(shù)形式,或者叫做小數(shù)點式和字母E(或e)式。(1)小數(shù)點式:①有且僅有一個小數(shù)點②小數(shù)點的左邊和右邊可以有一邊沒有數(shù)據(jù),但不能同時沒有數(shù)據(jù)合法的表示形式:3.14、0.16、10.、0.0、.5、-6.08不合法的表示形式:3.5.6、1*345

(2)字母E(或e)式:分為小數(shù)部分和指數(shù)部分分別存放。

①指數(shù)形式表示實數(shù)時必須有尾數(shù)部分和指數(shù)部分②有且僅有一個字母E(或e)③尾數(shù)部分既可以用小數(shù)表示也可以用整數(shù)表示④指數(shù)部分只能是整數(shù)而不能是實數(shù)合法的表示形式:1e5、1.2E+4、3.0e-2、.12e6、23e5不合法的表示形式:e3、12.-e、2.5e可以使用后綴F或f表示單精度(float)類型,使用后綴L或l表示長雙精度(longdouble)類型。默認(rèn)狀態(tài)下,實型常量被識別為雙精度(double)類型。比如123.56是double類型,123.56f是float類型,123.56L是longdouble類型。3、字符型常量用一對單引號(‘’)括起來的一個字符是字符型常量。值得注意的是,一對單引號只是字符與其它部分的分隔符,或者說是字符常量的定界符,不是字符常量的一部分,當(dāng)輸出一個字符常量時不輸出此單引號。例如:‘a(chǎn)’,‘A’,‘#’等是字符型常量,而‘ABC’不是字符型常量。

字符型常量的兩種表現(xiàn)形式:(1)由一對單引號括起來的單個字符:

例如:‘A’、‘#’‘x’、‘$’使用字符常量時要注意數(shù)字字符和數(shù)字的區(qū)別。

例如,‘5’表示字符5,而不是數(shù)值5,字符5的ASCII碼值是53。

(2)轉(zhuǎn)義字符:轉(zhuǎn)義字符是一種特殊的字符常量,由一對單引號括起來,以反斜杠“\”開頭,后面跟若干字符。反斜杠之后的字符被轉(zhuǎn)換為另外的含義,不同于字符原有的意義,故稱為“轉(zhuǎn)義字符”。轉(zhuǎn)義字符通常用來表示C語言中的一些特殊的字符(例如控制字符)。常用轉(zhuǎn)義字符列表轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼\n回車換行10\t橫向跳到下一制表位置9\b退格8\r回車13\f走紙換頁12\\反斜線符"\"92\'單引號符39\”雙引號符34\a鳴鈴7\ddd1~3位八進(jìn)制數(shù)所代表的字符\101表示‘A’\xhh1~2位十六進(jìn)制數(shù)所代表的字符\XOA表示換行

廣義地講,C語言字符集中的任何一個字符均可用轉(zhuǎn)義字符來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進(jìn)制和十六進(jìn)制的ASCII代碼。如'\101'

表示字母'A','\102'

表示字母'B','\134'表示反斜線,'\x0A'

表示換行等?!纠?-1】轉(zhuǎn)義字符的使用。#include<stdio.h>voidmain(){printf(“abc\tde\rf\n”);printf(“hijk\tL\bM\n”);}程序運行結(jié)果為:fabcdehijkM注意轉(zhuǎn)義字符’\t’,’\r’,’\n’,’\b’的含義分析程序,理解結(jié)果4、字符串常量

用一對雙引號(“”)括起來的零個或多個字符序列稱為字符串常量。字符串常量以雙引號為定界符,但雙引號并不屬于字符串。

例如,“Hello”是字符串常量,但‘AB’既不是字符常量也不是字符串常量。字符串常量在機器中存儲時,系統(tǒng)會自動在字符串的末尾添加一個轉(zhuǎn)義字符‘\0’作為字符串的結(jié)束標(biāo)志。字符串"Cprogram"在內(nèi)存中所占的字節(jié)為10。Cprogram\0

字符串常量和字符常量是不同的量。它們之間主要有以下區(qū)別:(1)字符常量由單引號括起來,字符串常量由雙引號括起來。(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在C語言中沒有相應(yīng)的字符串變量,可以用一個字符數(shù)組來存放一個字符串常量。(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個字節(jié)中存放字符'\0'(ASCII碼為0),這是字符串結(jié)束的標(biāo)志。5、符號常量——用一個標(biāo)識符來表示一個常量,稱之為符號常量,符號常量在使用之前必須先定義.

定義格式:#define標(biāo)識符常量其中#define命令把該標(biāo)識符定義為其后的常量值。一經(jīng)定義,其值不能被改變,以后在程序中所有出現(xiàn)該標(biāo)識符的地方均代之以該常量值,。

例如:#definePI3.14159#definePRICE20符號常量的使用方法:①#define不是C語句,該行的末尾沒有分號,它是一個“預(yù)編譯命令”,預(yù)處理命令都以"#"開頭。②符號常量的標(biāo)識符習(xí)慣上用大寫字母表示,變量標(biāo)識符用小寫字母表示,以示區(qū)別。③不要把符號常量與變量混淆,符號常量只是一個符號,不占存儲空間,它的值在其作用域內(nèi)不能被改變,也不能再被賦值。符號常量只是簡單地進(jìn)行字符置換,不論置換的字符是否有含義都要進(jìn)行置換。④使用符號常量的好處是:含義清楚、能做到“一改全改”?!纠?-2】符號常量的使用示例。#definePI3.1415926#defineR3.0#include<stdio.h>voidmain(){float

c,s;c=2*PI*R;s=PI*R*R;printf(“circumference=%f\n”,c);printf(“area=%f\n”,s);}分析:命令行#definePI3.1415926的作用是在預(yù)編譯時將程序中凡出現(xiàn)PI的地方全部用3.1415926代替。符號常量的優(yōu)點是使程序容易理解,可讀性好且容易維護(hù)。2.3.2變量1、變量的概念變量是指C語言程序中合法的標(biāo)識符,是用來存取某種類型值的存儲單元,其中存儲的值可以在程序執(zhí)行的過程中被改變。

定義變量的一般形式為:

<變量類型說明符><變量列表>[=<初值>];其中:

(1)變量類型說明符確定了變量的取值范圍以及對變量所能進(jìn)行的操作規(guī)范。

(2)變量列表由一個或多個變量名組成。當(dāng)要定義多個變量時,各變量之間用逗號分隔。

(3)初值是可選項,變量可以在定義的同時賦初值,也可以先定義,在后續(xù)程序中賦初值。2、變量的定義

C語言中,必須對所有的變量“先定義,后使用”。如inta;表示定義了一個變量,其變量名為a,變量名代表內(nèi)存中的存儲單元,在對程序進(jìn)行編譯連接時,由系統(tǒng)給每個變量分配存儲單元,定義后可給變量賦值。如a=3;變量a,yinta;longy;a=3;y=34568;2000200120022005ay內(nèi)存內(nèi)存地址200320043例如:inta,b,c;

//表示定義了a,b,c3個整型變量,其初值是不確定的inta=1,b=2,c=3;

//表示定義了a,b,c3個整型變量并分別賦初值1,2,3floata,b=3.5;

//表示定義了a,b2個單精度型變量,其中只有b賦初值3.5charx,y=‘A’;

//表示定義了x,y2個字符型變量,其中只有變量y賦初值'A'C語言對變量強制定義的目的是:(1)因為只有在定義了變量的類型后,系統(tǒng)才知道如何給變量分配存儲空間。如指定變量a為整型,在編譯時就能為其分配相應(yīng)的4個字節(jié)的存儲空間,并按整數(shù)方式存儲數(shù)據(jù)。(2)指定一個變量屬于一個特定的類型,在編譯時,能根據(jù)該類型進(jìn)行運算是否合法的檢查。例如:

floata=4.5,b=8.9;intc;c=a%b;//錯誤求余運算要求兩個操作數(shù)都是整數(shù),運算結(jié)果也要求是整數(shù),而現(xiàn)在a,b均為實數(shù),在編譯時,系統(tǒng)會給出有關(guān)的出錯信息。變量的初始化與賦值

C語言允許在聲明變量時給該變量賦一個初值,這種給變量設(shè)置初值的工作稱為初始化。變量進(jìn)行初始化:

在定義變量的同時給變量一個初始值;例:intx=10;

變量的賦值:使用賦值號“=”賦初值。例:floaty;y=10.25;3、變量的分類 如果把變量與數(shù)據(jù)類型結(jié)合起來分類,變量可分為整型變量、浮點變量(實型變量)、字符變量。(1)整型變量系統(tǒng)根據(jù)聲明變量時所指定的數(shù)據(jù)類型為變量分配存儲空間,使用整型變量時要注意不能超過變量的取值范圍。如果定義了一個短整型變量i:shorti=10;則i在內(nèi)存中的二進(jìn)制表示如下:0000000000001010C語言中的數(shù)值在計算機中是以補碼形式表示的:①正數(shù)的補碼和原碼相同;②負(fù)數(shù)的補碼:將該數(shù)的絕對值的二進(jìn)制形式按位取反再加1。

例2-3:整型數(shù)據(jù)的溢出。#include<stdio.h>voidmain(){shortx=32767,y;y=x+1;printf("x=%d,y=%d\n",x,y);}y=-32768的原因是數(shù)據(jù)溢出,超過整型數(shù)據(jù)的范圍(2)實型變量

實型變量分為個單精度型和雙精度型變量,兩者之間的區(qū)別在于后者的有效位數(shù)比前者的多、精度更高。實型數(shù)據(jù)一般占4個字節(jié)(32位)內(nèi)存空間,按指數(shù)形式存儲,分為小數(shù)部分(尾數(shù))和指數(shù)部分(階碼)。對于一個無窮的小數(shù),由于存儲空間有限,計算機無法表示出小數(shù)點后面所有的值,只能表示實際值的近似值。因此,使用實型變量時,單精度實型變量的有效位數(shù)是7位,雙精度是16位,但在vc6.0中小數(shù)位取6位其余作四舍五入處理。

實型數(shù)據(jù)一般占4個字節(jié)(32位)內(nèi)存空間,按指數(shù)形式存儲,分為小數(shù)部分(尾數(shù))和指數(shù)部分(階碼)。實數(shù)3.14159在內(nèi)存中的存放形式:+0.3141591

數(shù)符小數(shù)部分指數(shù)部分因此,使用實型變量時,可能會有誤差。實型變量的有效位數(shù)越多,與實際值就會越接近,精度就越高。

例2-4:對比float型數(shù)據(jù)和double型數(shù)據(jù)。#include<stdio.h>voidmain(){floatx=5555.55555;doubley=5555.555555555555;

printf("x=%f\n",x);printf("y=%lf\n",y);}單精度的有效位數(shù)是7位,包括整數(shù)部分與小數(shù)位而雙精度保留6位有效小數(shù)程序運行結(jié)果為:x=5555.555664y=5555.555556【例2-5】實型數(shù)據(jù)的舍入誤差。#include<stdio.h>voidmain(){floata=123456789.0,b;b=a+1;printf("a=

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論