c語(yǔ)言程序設(shè)計(jì)之基本數(shù)據(jù)類型與表達(dá)式_第1頁(yè)
c語(yǔ)言程序設(shè)計(jì)之基本數(shù)據(jù)類型與表達(dá)式_第2頁(yè)
c語(yǔ)言程序設(shè)計(jì)之基本數(shù)據(jù)類型與表達(dá)式_第3頁(yè)
c語(yǔ)言程序設(shè)計(jì)之基本數(shù)據(jù)類型與表達(dá)式_第4頁(yè)
c語(yǔ)言程序設(shè)計(jì)之基本數(shù)據(jù)類型與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩89頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章12/21/20221本章要點(diǎn)數(shù)據(jù)的描述規(guī)則數(shù)據(jù)的操作規(guī)則12/21/20222

主要內(nèi)容2.1C的數(shù)據(jù)類型2.2常量與變量2.3整型數(shù)據(jù)2.4浮點(diǎn)型數(shù)據(jù)運(yùn)行2.5字符型數(shù)據(jù)

12/21/20223

主要內(nèi)容2.6變量賦初值

2.7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算

2.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式

2.9賦值運(yùn)算符和賦值表達(dá)式

2.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式12/21/20224數(shù)值的表示方法——原碼、反碼和補(bǔ)碼原碼:最高位為符號(hào)位,其余各位為數(shù)值本身的絕對(duì)值反碼:正數(shù):反碼與原碼相同負(fù)數(shù):符號(hào)位為1,其余位對(duì)原碼取反補(bǔ)碼:正數(shù):原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1,其余位為原碼取反,再對(duì)整個(gè)數(shù)加112/21/20225原碼反碼補(bǔ)碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)(用一字節(jié)表示數(shù))純整數(shù)的補(bǔ)碼最小可以表示到-2^n。這時(shí)在[-2^n]中,符號(hào)位的1既表示符號(hào)“-”,也表示數(shù)值2^n。

若要一個(gè)負(fù)數(shù)變補(bǔ)碼,其方法是符號(hào)位置1,其余各位0變1,1變0,然后在最末位上加1。負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù):最高位不動(dòng),其余位取反加1例補(bǔ)碼:11111001取反:10000110加1:10000111=-712/21/20226

2.1C的數(shù)據(jù)類型C語(yǔ)言提供了以下一些數(shù)據(jù)類型。

數(shù)據(jù)類型構(gòu)造類型指針類型空類型(無(wú)值類型)void枚舉類型enum數(shù)組類型結(jié)構(gòu)類型struct聯(lián)合類型union基本類型整型int字符型char實(shí)型(浮點(diǎn)型)單精度實(shí)型float雙精度實(shí)型double數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù);2.數(shù)據(jù)取值范圍;3.其上可進(jìn)行的操作12/21/20227

2.2常量與變量2.2.1常量和符號(hào)常量在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量常量區(qū)分為不同的類型:整型100,125,-100,0實(shí)型3.14,0.125,-3.789字符型‘a(chǎn)’,‘b’,‘2’字符串〝a〞,〝ab〞,〝1232〞直接常量12/21/20228例2.1符號(hào)常量的使用

#definePRICE30

#include<stdio.h>

voidmain()

{

intnum,total;

num=10;

total=num*PRICE;

printf(″total=%d\n″,total);

}符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量。符號(hào)常量的值在其作用域內(nèi)不能改變,也不能再被賦值。運(yùn)行結(jié)果:

total=300說(shuō)明:

程序中用#define命令行定義PRICE代表常量30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進(jìn)行運(yùn)算說(shuō)明:如再用賦值語(yǔ)句給PRICE賦值是錯(cuò)的PRICE=40;/*錯(cuò)誤,不能給符號(hào)常量賦值12/21/20229

2.2常量與變量2.2.2變量變量代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,它用來(lái)存放數(shù)據(jù),這就是變量的值,在程序運(yùn)行期間,這些值是可以改變的。變量名實(shí)際上是一個(gè)以一個(gè)名字對(duì)應(yīng)代表一個(gè)地址,在對(duì)程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。12/21/2022102.2常常量與變量量變量命名的的規(guī)定:C語(yǔ)言規(guī)定定標(biāo)識(shí)符只只能由字母母、數(shù)字和和下劃線三三種字符組組成,且第第一個(gè)字符符必須為字字母或下劃劃線。例:sum,_total,month,Student_name,lotus_1_2_3,BASIC,li_lingM.D.John,¥123,3D64,a>b12/20/2022112.2常常量與變量量注意:編譯系統(tǒng)將將大寫(xiě)字母母和小寫(xiě)字字母認(rèn)為是是兩個(gè)不同同的字符。。建議變量名名的長(zhǎng)度最最好不要超超過(guò)8個(gè)字字符。在選擇變量量名和其它它標(biāo)識(shí)符時(shí)時(shí),應(yīng)注意意做到“見(jiàn)見(jiàn)名知意””,即選有有含意的英英文單詞((或其其縮寫(xiě))作作標(biāo)識(shí)符。。要求對(duì)所有有用到的變變量作強(qiáng)制制定義,也也就是“先先定義,后后使用”。。12/20/2022122.3整整型數(shù)據(jù)據(jù)2.3.1整型常量量的表示方方法整型常量即即整常數(shù)。。在C語(yǔ)言言中,整常常數(shù)可用以下三三種形式表表示:(1)十進(jìn)進(jìn)制整數(shù)。。如:123,-456,4。。(2)八進(jìn)進(jìn)制整數(shù)。。以0開(kāi)頭頭的數(shù)是八八進(jìn)制數(shù)。。如:0123表表示八進(jìn)制制數(shù)123,等于十十進(jìn)制數(shù)83,-011表示示八進(jìn)制數(shù)數(shù)-11,即十進(jìn)制制數(shù)-9。。12/20/2022132.3整整型數(shù)據(jù)據(jù)(3)十六六進(jìn)制整數(shù)數(shù)。以0x開(kāi)頭的數(shù)數(shù)是16進(jìn)進(jìn)制數(shù)。如:0x123,代表16進(jìn)制數(shù)數(shù)123,等于十進(jìn)進(jìn)制數(shù)291。-0x12等于十十進(jìn)制數(shù)--10。2.3.2整型變變量(1)整型型數(shù)據(jù)在內(nèi)內(nèi)存中的存存放形式數(shù)據(jù)在內(nèi)存存中是以二二進(jìn)制形式式存放的。。如:inti;/*定義義為整型變變量*/i=10;/*給i賦以整數(shù)數(shù)10*/12/20/2022142.3整整型型數(shù)據(jù)注意:十進(jìn)制數(shù)數(shù)10的的二進(jìn)制制形式為為1010,TurboC2.0和TurboC++3.0為一個(gè)個(gè)整型變變量在內(nèi)內(nèi)存中分分配2個(gè)個(gè)字節(jié)的的存儲(chǔ)單單元(不不同的編編譯系統(tǒng)統(tǒng)為整型型數(shù)據(jù)分分配的字字節(jié)數(shù)是是不相同同的,VC++6.0則分分配4個(gè)個(gè)字節(jié)))。數(shù)值是以以補(bǔ)碼(complement)表表示的的。12/20/2022152.3整整型型數(shù)據(jù)(2)整整型變量量的分類類共六種有符號(hào)基基本整型型有符號(hào)短短整型有符號(hào)長(zhǎng)長(zhǎng)整型無(wú)符號(hào)基基本整型型無(wú)符號(hào)短短整型無(wú)符號(hào)長(zhǎng)長(zhǎng)整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)注意:括號(hào)表示示其中的的內(nèi)容是是可選的的.12/20/2022162.3整整型型數(shù)據(jù)整數(shù)類型型的有關(guān)關(guān)數(shù)據(jù)::類型類類型說(shuō)明明符長(zhǎng)長(zhǎng)度數(shù)數(shù)的范圍圍基本型int2字節(jié)-32768~32767短整型short2字節(jié)-215~215-1長(zhǎng)整型long4字節(jié)-231~231-1無(wú)符號(hào)整整型unsigned2字節(jié)0~~65535無(wú)符號(hào)短短整型unsignedshort2字節(jié)0~~65535無(wú)符號(hào)長(zhǎng)長(zhǎng)整型unsignedlong4字節(jié)0~~(232-1)12/20/2022172.3整整型數(shù)據(jù)例如:整數(shù)13在內(nèi)存中中實(shí)際存放的的情況:12/20/2022182.3整整型數(shù)據(jù)(3)整型變變量的定義:C規(guī)定在程序序中所有用到到的變量都必必須在程序中中定義,即““強(qiáng)制類型定定義”。例如:inta,b(指定變量aa、b為整型型)unsignedshortc,d;(指定變量cc、d為無(wú)符符號(hào)短整型))longe,f;(指定變量ee、f為長(zhǎng)整整型)12/20/202219例2.2整整型變量的定定義與使用#include<stdio.h>voidmain()){{inta,b,c,d;/*指定定a、b、cc、d為整型型變量*//unsigneduu;//*指定uu為無(wú)符號(hào)整整型變量*/aa==12;b==-24;uu=10;cc=a++u;d=bb+u;printf(″a++u=%d,,b+u=%%d\n″,,c,d);;}}說(shuō)明:可以看到不同同種類的整型型數(shù)據(jù)可以進(jìn)進(jìn)行算術(shù)運(yùn)算算運(yùn)行結(jié)果:a+u=222,b+u==-1412/20/202220例2.3整整型數(shù)據(jù)的溢溢出#include<stdio.h>

voidmain()

{inta,b;

a=32767;

b=a+1;printf(“%d,%d\n”,a,b);}說(shuō)明:數(shù)值是以補(bǔ)碼碼表示的。一一個(gè)整型變量量只能容納-32768~32767范圍內(nèi)的的數(shù),無(wú)法表表示大于32767或小小于-32768的數(shù)。。遇此情況就就發(fā)生“溢出出”。運(yùn)行結(jié)果:32767,-3276812/20/202221在C中,用高高位置1來(lái)表表示負(fù)數(shù),int型占兩兩個(gè)字節(jié)共16位,32768的二進(jìn)制是10000000,00000000,高位為為1,系統(tǒng)會(huì)會(huì)認(rèn)為是負(fù)數(shù)數(shù),所以32768需要要用長(zhǎng)型表示示,占四個(gè)字字節(jié)。最高位位就不是1了了。(00000000,00000000,10000000,00000000)-32768在內(nèi)存中的表表示是10000000,00000000。。過(guò)程是:先讀讀入正值32768(10000000,00000000),再取取反(01111111,11111111)),再加1(10000000,00000000)12/20/20222212/20/20222312/20/2022242.3整整型型數(shù)數(shù)據(jù)據(jù)2.3.3整整型型常常量量的的類類型型(1)一一個(gè)個(gè)整整數(shù)數(shù),,如如果果其其值值在在-32768~~+32767范范圍圍內(nèi)內(nèi),,認(rèn)認(rèn)為為它它是是int型型,,它它可可以以賦賦值值給給int型型和和longint型型變變量量。。(2)一一個(gè)個(gè)整整數(shù)數(shù),,如如果果其其值值超超過(guò)過(guò)了了上上述述范范圍圍,,而而在在-2147483637~~+2147483647范范圍圍內(nèi)內(nèi),,則則認(rèn)認(rèn)為為它它是是為為長(zhǎng)長(zhǎng)整整型型。??煽梢砸詫⑺x賦值值給給一一個(gè)個(gè)longint型型變變量量。。12/20/2022252.3整整型數(shù)據(jù)(3)如果果所用的C版版本(如TurboC)分配給shortint與int型數(shù)據(jù)據(jù)在內(nèi)存中占占據(jù)的長(zhǎng)度相同,則它的的表數(shù)范圍與與int型相相同。因此一個(gè)int型型的常量同時(shí)時(shí)也是一個(gè)shortint型常量,可以賦賦給int型型或shortint型變量。12/20/2022262.3整整型數(shù)據(jù)(4)一個(gè)個(gè)整常量后面面加一個(gè)字母母u或U,認(rèn)為是unsignedint型,,如12345u,在內(nèi)內(nèi)存中按unsignedint規(guī)定定的方式存放放(存儲(chǔ)單元中最高位位不作為符號(hào)號(hào)位,而用來(lái)來(lái)存儲(chǔ)數(shù)據(jù))。如果果寫(xiě)成-12345u,,則先將-12345轉(zhuǎn)換成其補(bǔ)碼碼53191,然后按無(wú)無(wú)符號(hào)數(shù)存儲(chǔ)。12/20/202227Unsignedint占2個(gè)個(gè)字節(jié)(16位)。12345→→二進(jìn)制-12345→二進(jìn)制((補(bǔ)碼)原:補(bǔ):Unsigned:=5319112/20/2022282.3整整型數(shù)據(jù)(5)在一一個(gè)整常量后后面加一個(gè)字字母l或L,則認(rèn)為是longint型常量量。例如:123l.432L.0L用于函數(shù)調(diào)用用中。如果函數(shù)的形形參為longint型,則要求求實(shí)參也為longint型。12/20/2022292.4浮浮點(diǎn)型型數(shù)據(jù)2.4.1浮點(diǎn)點(diǎn)型常量量的表示示方法兩種表示形式小數(shù)指數(shù)0.1233e-3注意:字母e(或E)之前必必須有數(shù)數(shù)字,且且e后面面的指數(shù)數(shù)必須為為整數(shù)1e3、、1.8e-3、-123e-6、、-.1e-3e3、2.1e3.5、.e3、e12/20/2022302.4浮浮點(diǎn)型型數(shù)據(jù)規(guī)范化的的指數(shù)形形式:在字母e(或E)之前前的小數(shù)數(shù)部分中中,小數(shù)數(shù)點(diǎn)左邊邊應(yīng)有一位位(且只只能有一一位)非非零的數(shù)數(shù)字.例如:123.456可以表表示為::123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e其中的1.23456e2稱為“規(guī)規(guī)范化的的指數(shù)形形式”。。12/20/2022312.4浮浮點(diǎn)型型數(shù)據(jù)2.4.2浮浮點(diǎn)型變變量(1)浮浮點(diǎn)型數(shù)數(shù)據(jù)在內(nèi)內(nèi)存中的的存放形形式一個(gè)浮點(diǎn)點(diǎn)型數(shù)據(jù)據(jù)一般在在內(nèi)存中中占4個(gè)個(gè)字節(jié)(32位位)。與與整型數(shù)數(shù)據(jù)的存存儲(chǔ)方式式不同,,浮點(diǎn)型型數(shù)據(jù)是是按照指數(shù)形式式存儲(chǔ)的。。系統(tǒng)把把一個(gè)浮浮點(diǎn)型數(shù)數(shù)據(jù)分成成小數(shù)部部分和指指數(shù)部分分,分別別存放。。指數(shù)部部分采用用規(guī)范化化的指數(shù)數(shù)形式。。12/20/202232類型位數(shù)數(shù)的范圍有效數(shù)字float3210-37~10386~7位double型6410-307~1030815~16位longdouble12810-4931~10493218~19位2.4浮浮點(diǎn)型型數(shù)據(jù)(2)浮浮點(diǎn)型型變量的的分類浮點(diǎn)型變變量分為為單精度度(float型)、、雙精度度(double型))和長(zhǎng)雙雙精度型型(longdouble)三類類形式。。12/20/202233例2.4浮點(diǎn)點(diǎn)型數(shù)據(jù)據(jù)的舍入入誤差#include<stdio.h>voidmain(){floata,b;a=123456.789e5;b=a+20;printf(“%f\n””,b);}說(shuō)明:一個(gè)浮點(diǎn)點(diǎn)型變量量只能保保證的有有效數(shù)字字是7位位有效數(shù)數(shù)字,后后面的數(shù)數(shù)字是無(wú)無(wú)意義的的,并不不準(zhǔn)確地地表示該該數(shù)。應(yīng)應(yīng)當(dāng)避免免將一個(gè)個(gè)很大的的數(shù)和一一個(gè)很小小的數(shù)直直接相加加或相減減,否則則就會(huì)““丟失””小的數(shù)數(shù)運(yùn)行結(jié)果果:123456.789e512/20/2022342.4浮浮點(diǎn)型型數(shù)據(jù)2.4.3浮浮點(diǎn)型常常量的類類型C編譯系系統(tǒng)將浮浮點(diǎn)型常常量作為為雙精度度來(lái)處理理。例如:f=2.45678*4523.65系統(tǒng)先把把2.45678和4523.65作為雙雙精度數(shù)數(shù),然后后進(jìn)行相相乘的運(yùn)運(yùn)算,得得到的乘乘也是一一個(gè)雙精精度數(shù)。。最后取取其前7位賦給給浮點(diǎn)型型變量f。如是是在數(shù)的的后面加加字母f或F((如1.65f,654.87F),這這樣編譯譯系統(tǒng)就就會(huì)把它它們按單單精度((32位位)處理理。12/20/2022352.5字字符型型數(shù)據(jù)2.5.1字字符常量量(1)用用單引號(hào)號(hào)包含的的一個(gè)字字符是字字符型常常量(2)只只能包含含一個(gè)字字符例‘a(chǎn)’,’A’’,‘‘1’‘a(chǎn)bc’、““a”12/20/2022362.5字字符型型數(shù)據(jù)有些以““\”開(kāi)開(kāi)頭的特特殊字符符稱為轉(zhuǎn)轉(zhuǎn)義字符符\n換換行行\(zhòng)t橫向跳格格\r回車(chē)\\反反斜杠\dddddd表示示1到3位八進(jìn)進(jìn)制數(shù)字字\xhhhh表示1到2位位十六進(jìn)進(jìn)制數(shù)字字12/20/202237例2.5轉(zhuǎn)義義字符的的使用打印機(jī)上上的顯示示結(jié)果::fabcgdehjik12/20/2022382.5字字符型型數(shù)據(jù)2.5.2字符符變量字符型變變量用來(lái)來(lái)存放字字符常量量,注意意只能放放一個(gè)字字符。字符變量量的定義義形式如如下:charc1,c2;在本函數(shù)數(shù)中可以以用下面面語(yǔ)句對(duì)對(duì)c1,c2賦賦值:c1=‘‘a(chǎn)’;;c2==‘b’;;一個(gè)字符符變量在在內(nèi)存中中占一個(gè)個(gè)字節(jié)。。12/20/2022392.5字字符型型數(shù)據(jù)2.5.3字字符數(shù)據(jù)據(jù)在內(nèi)存存中的存存儲(chǔ)形式式及其使使用方法法一個(gè)字符符常量存存放到一一個(gè)字符符變量中中,實(shí)際際上并不不是把該該字符的的字型放放到內(nèi)存存中去,,而是將將該字符符的相應(yīng)應(yīng)的ASCII代碼放放到存儲(chǔ)儲(chǔ)單元中中。這樣樣使字符符型數(shù)據(jù)據(jù)和整型型數(shù)據(jù)之之間可以以通用。。注意:一個(gè)字符符數(shù)據(jù)既既可以以以字符形形式輸出出,也可可以以整整數(shù)形式式輸出。。12/20/202240例2.6向向字字符符變變量量賦賦以以整整數(shù)數(shù)。。#include<stdio.h>voidmain(){charc1,c2;c1=97;c2=98;printf(““%c%c\n””,c1,c2);printf(““%d%d\n””,c1,c2);}}說(shuō)明明::在第第33和和第第4行行中中,,將將整整數(shù)數(shù)97和和98分分別別賦賦給給c1和和c2,,它它的的作作用用相相當(dāng)當(dāng)于于以以下下兩兩個(gè)個(gè)賦賦值值語(yǔ)語(yǔ)句句::c1==′′aa′′;c2==′′bb′′;因?yàn)闉椤痑’’和和’’b’’的的ASCII碼碼為為97和和98運(yùn)行行結(jié)結(jié)果果::abb979812/20/202241例2.7大大小小寫(xiě)寫(xiě)字字母母的的轉(zhuǎn)轉(zhuǎn)換換#include<stdio.h>voidmain(){charc1,c2;;c1=’’a’’;c2=’’b’’;c1=c1-32;c2=c2-32;printf(““%%c%%c″″,,c1,c2));;}}說(shuō)明::程序的的作用用是將將兩個(gè)個(gè)小寫(xiě)寫(xiě)字母母a和和b轉(zhuǎn)轉(zhuǎn)換成成大寫(xiě)寫(xiě)字母母A和和B。。從AASCCIII代碼碼表中中可以以看到到每一一個(gè)小小寫(xiě)字字母比比它相相應(yīng)的的大寫(xiě)寫(xiě)字母母的ASCII碼大大32。CC語(yǔ)言言允許許字符符數(shù)據(jù)據(jù)與整整數(shù)直直接進(jìn)進(jìn)行算算術(shù)運(yùn)運(yùn)算。。運(yùn)行結(jié)結(jié)果::ABB12/20/2022422.5字字符型型數(shù)據(jù)據(jù)說(shuō)明::有些系系統(tǒng)((如TurboC)將將字符符變量量定義義為signedchar型。。其存存儲(chǔ)單單元中中的最最高位位作為為符號(hào)號(hào)位,,它的的取值值范圍圍是-128~~127。。如果果在字字符變變量中中存放放一個(gè)個(gè)ASCII碼碼為0~127間的的字符符,由由于字字節(jié)中中最高高位為為0,,因此此用%d輸輸出字字符變變量時(shí)時(shí),輸輸出的的是一一個(gè)正正整數(shù)數(shù)。如如果在在字符符變量量中存存放一一個(gè)ASCII碼為為128~~255間間的字字符,,由于于在字字節(jié)中中最高高位為為1,,用%d格格式符符輸出出時(shí),,就會(huì)會(huì)得到到一個(gè)個(gè)負(fù)整整數(shù)。。12/20/2022432.5字字符符型型數(shù)數(shù)據(jù)據(jù)2.5.4字字符符串串常常量量字符符串串常常量量是是一一對(duì)對(duì)雙雙撇撇號(hào)號(hào)括括起起來(lái)來(lái)的的字字符符序序列列.合法法的的字字符符串串常常量量:“Howdoyoudo.””,““CHINA””,,““a””,,““$123.45””可以以輸輸出出一一個(gè)個(gè)字字符符串串,,如如printf(““Howdoyoudo.””);;12/20/2022442.5字字符符型型數(shù)數(shù)據(jù)據(jù)‘aa’’是是字字符符常常量量,,””aa””是是字字符符串串常常量量,,二二者者不不同。如:假設(shè)C被指定定為字符變量量:charcc=’a’;c=”a”;;c=”CHINA”;結(jié)論:不能把一個(gè)字字符串常量賦賦給一個(gè)字符符變量。12/20/202245C規(guī)定:在每每一個(gè)字符串串常量的結(jié)尾尾加一個(gè)““字符串結(jié)束標(biāo)志””,以便系統(tǒng)統(tǒng)據(jù)此判斷字字符串是否結(jié)結(jié)束。C規(guī)定以字符符’\0’作作為字符串結(jié)結(jié)束標(biāo)志。如:如果有一個(gè)字字符串常量””CHINAA”,實(shí)際際上在內(nèi)存中中是:CHINA\0它占內(nèi)存單元元不是5個(gè)字字符,而是66個(gè)字符,最最后一個(gè)字符符為’\0’’。但在輸出出時(shí)不輸出’’\0’。2.5字符符型數(shù)據(jù)12/20/2022462.6變量量賦初值字符串常量(1)C語(yǔ)言允許在在定義變量的的同時(shí)使變量量初始化如:inta=3;//指定a為為整型變量,,初值為3floatf=3.56;//指定f為為浮點(diǎn)型變量量,初值為33.56charc=‘a(chǎn)’’;//指指定c為字字符變量,初初值為‘a(chǎn)’’12/20/2022472.6變量量賦初值(2)可以使使被定義的變變量的一部分分賦初值。如:inta,b,c=5;表示示指定a、bb、c為整型型變量,但只只對(duì)c初始化化,c的初值值為5(3)如果對(duì)對(duì)幾個(gè)變量賦賦以同一個(gè)初初值,應(yīng)寫(xiě)成:inta=3,b=3,c=3;表示aa、b、c的的初值都是33。不能寫(xiě)成∶inta=b=c=3;注意:初始化不是在在編譯階段完完成的而是在在程序運(yùn)行時(shí)時(shí)執(zhí)行本函數(shù)數(shù)時(shí)賦初值的的,相當(dāng)于有有一個(gè)賦值語(yǔ)語(yǔ)句。12/20/2022482.7各各類數(shù)值型型數(shù)據(jù)間的的混合運(yùn)算算混合運(yùn)算::整型(包括括int,short,long)、、浮點(diǎn)型((包括float,double)可可以混合運(yùn)運(yùn)算。在進(jìn)進(jìn)行運(yùn)算時(shí)時(shí),不同類類型的數(shù)據(jù)據(jù)要先轉(zhuǎn)換換成同一類類型,然后后進(jìn)行運(yùn)算算.說(shuō)明:這種類型轉(zhuǎn)轉(zhuǎn)換是由系系統(tǒng)自動(dòng)進(jìn)進(jìn)行的。12/20/2022492.8算算術(shù)運(yùn)算符符和算術(shù)表表達(dá)式2.8.1C運(yùn)算算符簡(jiǎn)介C的運(yùn)算符符有以下幾幾類:(1)算術(shù)術(shù)運(yùn)算符((+-*/%)(2)關(guān)系系運(yùn)算符((><===>=<<=?。剑?3)邏輯輯運(yùn)算符((?。ΓΓ|)(4)位運(yùn)運(yùn)算符((<<>>~|∧&)(5)賦值值運(yùn)算符((=及其其擴(kuò)展賦值值運(yùn)算符))(6)條件件運(yùn)算符((?:))(7)逗號(hào)號(hào)運(yùn)算符(,))(8)指針針運(yùn)算符((*和&&)(9)求字字節(jié)數(shù)運(yùn)算算符(siizeoff)(10)強(qiáng)強(qiáng)制類型轉(zhuǎn)轉(zhuǎn)換運(yùn)算符符((類類型))(11)分分量運(yùn)算符符(.->)(12)下下標(biāo)運(yùn)算符符([]])(13)其其他(如如函數(shù)調(diào)用用運(yùn)算符(())12/20/2022502.8算算術(shù)運(yùn)算符符和算術(shù)表表達(dá)式2.8.2算術(shù)運(yùn)運(yùn)算符和算算術(shù)表達(dá)式式(1)基本本的算術(shù)運(yùn)運(yùn)算符:+(加法運(yùn)算符符,或正值值運(yùn)算符。。如:3++5、+33)-(減法運(yùn)算符符,或負(fù)值值運(yùn)算符。。如:5--2、-33)*(乘法運(yùn)算算符。如:3*5))/(除法運(yùn)算符符。如:55/3)%(模運(yùn)算符,,或稱求余余運(yùn)算符,,%兩側(cè)均均應(yīng)為整型型數(shù)據(jù),如如:7%44的值為33)。12/20/2022512.8算算術(shù)運(yùn)運(yùn)算符和和算術(shù)表表達(dá)式(2)算算術(shù)表表達(dá)式和和運(yùn)算符符的優(yōu)先先級(jí)與結(jié)結(jié)合性基基本的算算術(shù)運(yùn)算算符:用算術(shù)運(yùn)運(yùn)算符和和括號(hào)將將運(yùn)算對(duì)對(duì)象(也也稱操作作數(shù))連連接起來(lái)來(lái)的、符符合C語(yǔ)語(yǔ)法規(guī)則則的式子子,稱為為C算術(shù)術(shù)表達(dá)式式。運(yùn)算算對(duì)象包包括常量量、變量量、函數(shù)數(shù)等。例如:a*b//c-11.5++′a′′是一個(gè)合合法的表表達(dá)式12/20/202252C語(yǔ)言言規(guī)定定了運(yùn)運(yùn)算符符的優(yōu)優(yōu)先級(jí)級(jí)和結(jié)結(jié)合性性。在表達(dá)達(dá)式求求值時(shí)時(shí),先先按運(yùn)運(yùn)算符符的優(yōu)優(yōu)先級(jí)級(jí)別高高低次次序執(zhí)執(zhí)行,,例如如先乘乘除后后加減減。C規(guī)定定了各各種運(yùn)運(yùn)算符符的結(jié)結(jié)合方方向(結(jié)合合性)算術(shù)運(yùn)運(yùn)算符符的結(jié)結(jié)合方方向?yàn)闉椤白宰宰笾林劣摇薄?,即即先左左后右右?!?.8算算術(shù)運(yùn)運(yùn)算符符和算算術(shù)表表達(dá)式式12/20/2022532.8算算術(shù)運(yùn)運(yùn)算符符和算算術(shù)表表達(dá)式式(3)強(qiáng)制制類型型轉(zhuǎn)換換運(yùn)算算符可以利利用強(qiáng)強(qiáng)制類類型轉(zhuǎn)轉(zhuǎn)換運(yùn)運(yùn)算符符將一一個(gè)表表達(dá)式式轉(zhuǎn)換換成所需類類型。。一般形形式:(類類型名名)((表達(dá)達(dá)式))例如::(double)aa將將aa轉(zhuǎn)換換成double類類型(int)(x+y)將將x+y的的值轉(zhuǎn)轉(zhuǎn)換成成整型型(float)(5%3)將將5%3的的值轉(zhuǎn)轉(zhuǎn)換成成float型型12/20/202254例2.8強(qiáng)強(qiáng)制制類型型轉(zhuǎn)換換。#include<stdio.h>voidmaainn()){{fflooattxx;iinttii;xx=33.66;ii=((innt))x;;printf("x=%f,i=%d\n",,x,,i);}}說(shuō)明::有兩種種類型型轉(zhuǎn)換換,一一種是是在運(yùn)運(yùn)算時(shí)時(shí)不必必用戶戶指定定,系系統(tǒng)自自動(dòng)進(jìn)進(jìn)行的的類型型轉(zhuǎn)換換,如如3+6.5。。第二二種是是強(qiáng)制制類型型轉(zhuǎn)換換。當(dāng)當(dāng)自動(dòng)動(dòng)類型型轉(zhuǎn)換換不能能實(shí)現(xiàn)現(xiàn)目的的時(shí),,可以以用強(qiáng)強(qiáng)制類類型轉(zhuǎn)轉(zhuǎn)換。。運(yùn)行結(jié)結(jié)果::x=3.600000,,i=312/20/2022552.8算算術(shù)運(yùn)運(yùn)算符符和算算術(shù)表表達(dá)式式(4)自增、、自減減運(yùn)算算符作用是是使變變量的的值增增1或或減11如:++ii,---ii(在在使用用i之之前,,先使使i的的值加加(減))1))i+++,ii---(在在使用用i之之后,,使ii的值值加((減)11)12/20/2022562.8算算術(shù)運(yùn)運(yùn)算符符和算算術(shù)表表達(dá)式式i++與++i的區(qū)區(qū)別::++ii是先先執(zhí)行行i==i++1后后,再再使用用i的的值;;i+++是先先使用用i的的值后后,再再執(zhí)行行i==i++1。。例如::①j==+++i;;i的值值先變變成4,再再賦賦給jj,j的值值均為為4②j==i+++;;先將i的的值3賦給給j,j的的值為為3,,然后后i變變?yōu)椋矗?2/20/2022572.8算算術(shù)運(yùn)運(yùn)算符符和算算術(shù)表表達(dá)式式注意::(1)自增增運(yùn)算算符((+++),,自減減運(yùn)算算符((---),,只能能用于于變量量,而而不能能用于于常量量或表表達(dá)式式,(2)+++和---的的結(jié)合合方向向是““自右右至左左”。。自增((減))運(yùn)算算符常常用于于循環(huán)環(huán)語(yǔ)句句中使使循環(huán)環(huán)變量量自動(dòng)加加1。。也用用于指指針變變量,,使指指針指指向下下一個(gè)個(gè)地址址12/20/2022582.8算術(shù)術(shù)運(yùn)算符和算算術(shù)表達(dá)式(5)有關(guān)關(guān)表達(dá)式使用用中的問(wèn)題說(shuō)說(shuō)明①ANSIC并沒(méi)有具具體規(guī)定表達(dá)達(dá)式中的子表表達(dá)式的求值值順序,允許許各編譯系統(tǒng)統(tǒng)自己安排。。例如:對(duì)表達(dá)式a=f1()+f2()并不是所有的的編譯系統(tǒng)都都先調(diào)用f1(),然然后調(diào)用f2()。在有的的情況下結(jié)果果可能不同。。有時(shí)會(huì)出現(xiàn)一些令人容容易搞混的問(wèn)問(wèn)題,因此務(wù)務(wù)必要小心謹(jǐn)謹(jǐn)慎。12/20/2022592.8算術(shù)術(shù)運(yùn)算符和算算術(shù)表達(dá)式②C語(yǔ)言中有的的運(yùn)算符為一一個(gè)字符,有有的運(yùn)算符由由兩個(gè)字符組成成,為避免免誤解,最好好采取大家都都能理解的寫(xiě)法。例如:不要寫(xiě)成i+++j的形形式,而應(yīng)寫(xiě)寫(xiě)成(i++)+j的形式12/20/2022602.8算術(shù)術(shù)運(yùn)算符和算算術(shù)表達(dá)式③在調(diào)用函數(shù)時(shí)時(shí),實(shí)參數(shù)的的求值順序,,C標(biāo)準(zhǔn)并無(wú)無(wú)統(tǒng)一規(guī)定。例如:i的初值為33,如果有下下面的函數(shù)調(diào)調(diào)用:printf(″%d,,%d″,ii,i++)在有的系統(tǒng)中中,從左至右右求值,輸出出“3,3””。在多數(shù)系系統(tǒng)中對(duì)函數(shù)數(shù)參數(shù)的求值值順序是自右右而左,prrintf函函數(shù)輸出的是是“4,3””。以上這種種寫(xiě)法不宜提提倡,最好好改寫(xiě)成j=i++;printf("%d,,%d",,j,i)不要寫(xiě)出別人人看不懂的也也不知道系統(tǒng)會(huì)會(huì)怎樣執(zhí)行程程序12/20/2022612.9賦值值運(yùn)算符和賦賦值表達(dá)式(1)賦值運(yùn)運(yùn)算符賦值符號(hào)“==”就是賦值值運(yùn)算符,它它的作用是將一個(gè)數(shù)據(jù)賦賦給一個(gè)變量量。如“a==3”的作用用是執(zhí)行一次賦賦值操作(或或稱賦值運(yùn)算算)。把常量3賦給變量量a。也可以以將一個(gè)表達(dá)達(dá)式的值賦給一個(gè)變量.12/20/2022622.9賦賦值值運(yùn)運(yùn)算算符符和和賦賦值值表表達(dá)達(dá)式式(2)類類型型轉(zhuǎn)轉(zhuǎn)換換如果果賦賦值值運(yùn)運(yùn)算算符符兩兩側(cè)側(cè)的的類類型型不不一一致致,,但但都都是數(shù)數(shù)值值型型或或字字符符型型時(shí)時(shí),,在在賦賦值值時(shí)時(shí)要要進(jìn)進(jìn)行行類類型型轉(zhuǎn)換換。。①將將浮浮點(diǎn)點(diǎn)型型數(shù)數(shù)據(jù)據(jù)((包包括括單單、、雙雙精精度度))賦賦給給整整型變變量量時(shí)時(shí),,舍舍棄棄浮浮點(diǎn)點(diǎn)數(shù)數(shù)的的小小數(shù)數(shù)部部分分。。如:i為為整整型型變變量量,,執(zhí)執(zhí)行行““i=3.56””的的結(jié)結(jié)果果是是使使i的的值值為為33,,以以整整數(shù)數(shù)形形式式存存儲(chǔ)儲(chǔ)在在整整型型變變量量中中.12/20/2022632.9賦賦值值運(yùn)運(yùn)算算符符和和賦賦值值表表達(dá)達(dá)式式②將整整型型數(shù)數(shù)據(jù)據(jù)賦賦給給單單、、雙雙精精度度變變量量時(shí)時(shí),,數(shù)數(shù)值值不不變變,,但以以浮浮點(diǎn)點(diǎn)數(shù)數(shù)形形式式存存儲(chǔ)儲(chǔ)到到變變量量中中如:將23賦給給float變變量ff,即即執(zhí)行行f==23,先先將23轉(zhuǎn)換換成23..00000,,再存存儲(chǔ)在在f中中。將23賦給給double型變變量dd,即即執(zhí)行行d==23,系系統(tǒng)將將23補(bǔ)足足有效效位數(shù)數(shù)字為為23.00000000000000,,然后后以雙雙精度度浮點(diǎn)點(diǎn)數(shù)形形式存存儲(chǔ)到到變量量d中中。12/20/2022642.9賦賦值運(yùn)運(yùn)算符符和賦賦值表表達(dá)式式③將一一個(gè)double型型數(shù)據(jù)據(jù)賦給給float變變量時(shí)時(shí),截截取其其前面7位位有效效數(shù)字字,存存放到到float變變量的的存儲(chǔ)儲(chǔ)單元元(4個(gè)字節(jié)))中。。但應(yīng)應(yīng)注意意數(shù)值值范圍圍不能能溢出出。如:floatf;doubled=123.456789e100;f=d;就出現(xiàn)溢溢出的錯(cuò)錯(cuò)誤。如果將一一個(gè)float型數(shù)據(jù)據(jù)賦給double變變量時(shí),,數(shù)值不不變,有效效位數(shù)擴(kuò)擴(kuò)展到16位,,在內(nèi)存存中以8個(gè)字節(jié)節(jié)存儲(chǔ)12/20/2022652.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式④字符型型數(shù)據(jù)賦賦給整型型變量時(shí)時(shí),由于于字符只只占1個(gè)字字節(jié),而而整型變變量為22個(gè)字節(jié)節(jié),因此此將字符數(shù)據(jù)據(jù)(8?jìng)€(gè)個(gè)二進(jìn)位位)放到到整型變變量存儲(chǔ)儲(chǔ)單元的低低8位中中。12/20/202266第一種情情況:低位對(duì)應(yīng)應(yīng)、高位位補(bǔ)零若所用系系統(tǒng)將字字符處理理為無(wú)符符號(hào)字符符類型,,或程序序已將字字符變量量定義為為unsignedchar型,,則將字字符的88位放到到整型變變量低88位,高高8位補(bǔ)補(bǔ)零。例如:將字符‘‘\376’賦賦給int型變變量i第二種情情況:符號(hào)擴(kuò)展展若所用系系統(tǒng)(如如TurboC++)將字字符處理理為帶符符號(hào)(signedchar)時(shí)時(shí),若字字符最高高位為00,則整整型變量量高8位位補(bǔ)0;;若字符符最高位位為1,,則高88位全補(bǔ)補(bǔ)1。這這稱為““符號(hào)擴(kuò)擴(kuò)展”,,這樣做做的目的的是使數(shù)數(shù)值保持持不變,,如變量量c(字字符‘\\376’)以以整數(shù)形形式輸出出為-22,i的的值也是是-2。。12/20/2022672.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式⑤將一個(gè)個(gè)int、short、long型型數(shù)據(jù)賦賦給一個(gè)個(gè)char型變變量時(shí),只只將其低低8位原原封不動(dòng)動(dòng)地送到到char型變變量(即即截?cái)啵?。。例如:inti=289;charc=′a′;c=i;c的值為為33,,如果用““%c””輸出c,將將得到字字符“!”!的ASCII碼為33。賦值情況況:12/20/2022682.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式將帶符號(hào)號(hào)的整型型數(shù)據(jù)((int型)賦賦給long型型變量時(shí)時(shí),要進(jìn)進(jìn)行符號(hào)號(hào)擴(kuò)展,,將整型型數(shù)的16位送送到long型型低16位中:如果int型數(shù)數(shù)據(jù)為正正值(符符號(hào)位為為0),,則long型型變量的的高16位補(bǔ)00;如果int型變變量為負(fù)負(fù)值(符符號(hào)位為為1),,則long型型變量的的高16位補(bǔ)11,以保保持?jǐn)?shù)值值不改變變。反之,若若將一個(gè)個(gè)long型數(shù)數(shù)據(jù)賦給給一個(gè)int型型變量,,只將long型數(shù)據(jù)據(jù)中低16位原原封不動(dòng)動(dòng)地送到到整型變變量(即即截?cái)啵?2/20/2022692.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式例如:inta;longb==8;a=b賦值如:如果b==65536,則賦值值后a值值為0。。12/20/2022702.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式⑦將unsignedint型型數(shù)據(jù)賦賦給longint型變量時(shí)時(shí),不存在符號(hào)號(hào)擴(kuò)展問(wèn)問(wèn)題,只只需將高高位補(bǔ)00即可。。將一個(gè)個(gè)unsigned類型型數(shù)據(jù)賦賦給一個(gè)個(gè)占字節(jié)節(jié)數(shù)相同同的非unsigned型整整型變量量(例如如:unsignedint->int,unsignedlong->long,unsignedshort->short),將將unsigned型型變量的的內(nèi)容原原樣送到到非unsigned型變變量中,,但如果果數(shù)據(jù)范范圍超過(guò)過(guò)相應(yīng)整整型的范圍,則則會(huì)出現(xiàn)現(xiàn)數(shù)據(jù)錯(cuò)錯(cuò)誤。12/20/2022712.9賦賦值值運(yùn)運(yùn)算算符符和和賦賦值值表表達(dá)達(dá)式式例如如::unsignedintaa==65535;intb;bb==aa;;將aa整整個(gè)個(gè)送送到到bb中中,由由于于bb是是int,第第11位位是是符符號(hào)號(hào)位位,,因此此b成成了了負(fù)負(fù)數(shù)數(shù)。。根根據(jù)據(jù)補(bǔ)補(bǔ)碼碼知知識(shí)識(shí)可可知知,,bb的的值值為為-1,,可以以用用printf((″″%d″″,b);來(lái)來(lái)驗(yàn)驗(yàn)證證。。⑧將將非非unsigned型型數(shù)數(shù)據(jù)據(jù)賦賦給給長(zhǎng)長(zhǎng)度度相相同同的的unsigned型型變變量,也是原樣樣照賦(符號(hào)號(hào)位也作為數(shù)數(shù)值一起傳送送)。12/20/202272例2.9有有符號(hào)數(shù)據(jù)傳傳送給無(wú)符號(hào)號(hào)變量。#include<stdio.h>

voidmain(){{unsigneda;intb=-11;aa=b;print((″%u\n″,a);;

}說(shuō)明:“%u”是輸輸出無(wú)符號(hào)數(shù)數(shù)時(shí)所用的格格式符。如果果b為正值,,且在0~32767之之間,則賦值值后數(shù)值不變變。運(yùn)行結(jié)果:6553512/20/2022732.9賦值值運(yùn)算符和賦賦值表達(dá)式(3)復(fù)合合的賦值運(yùn)算算符在賦值符“==”之前加上上其他運(yùn)算符符,可以構(gòu)成成復(fù)合的運(yùn)算符。。例如:a+=3等等價(jià)價(jià)于a==a+3x*=y+88等價(jià)于于x==x*(y++8)x%=3等等價(jià)價(jià)于x==x%312/20/2022742.9賦賦值運(yùn)運(yùn)算符符和賦賦值表表達(dá)式式為便于于記憶憶,可可以這這樣理理解::①a+=b(其其中a為變變量,,b為為表達(dá)達(dá)式)②a+=b((將有有下劃劃線的的“a+””移到到“=”右右側(cè)))|___↑↑③a=a+b((在““=””左側(cè)側(cè)補(bǔ)上上變量量名a)注意:如果bb是包包含若若干項(xiàng)項(xiàng)的表表達(dá)式式,則則相當(dāng)當(dāng)于它它有括號(hào)。。如:①x%=y+3②x%=(y+3)|__↑③x=x%(y+3)(不要要錯(cuò)寫(xiě)寫(xiě)成x=x%y+3)凡是二二元((二目目)運(yùn)運(yùn)算符符,都都可以以與賦賦值符符一起起組合合成復(fù)復(fù)合賦賦值符符。C語(yǔ)言言規(guī)定定可以以使用用100種復(fù)復(fù)合賦賦值運(yùn)運(yùn)算符符:+=,,-==,*=,,/==,%%=,,<<=,,>>=,,&==,∧∧=,,|==12/20/2022752.9賦賦值運(yùn)運(yùn)算符符和賦賦值表表達(dá)式式(4)賦賦值表表達(dá)式式由賦值值運(yùn)算算符將將一個(gè)個(gè)變量量和一一個(gè)表表達(dá)式式連接接起來(lái)的的式子子稱為為“賦賦值表表達(dá)式式”。。一般形形式為為:<變量量><賦值值運(yùn)算算符><表表達(dá)式式>例如:“a==5””是一一個(gè)賦賦值表表達(dá)式式12/20/2022762.9賦賦值運(yùn)運(yùn)算符符和賦賦值表表達(dá)式式對(duì)賦值值表達(dá)達(dá)式求求解的的過(guò)程程是::①求賦賦值運(yùn)運(yùn)算符符右側(cè)側(cè)的““表達(dá)達(dá)式””的值值;②賦給給賦值值運(yùn)算算符左左側(cè)的的變量量。例如:賦值表表達(dá)式式“aa=3*5”的的值為為15,執(zhí)執(zhí)行表表達(dá)式式后,,變量量a的的值也也是15。。注意:一個(gè)表表達(dá)式式應(yīng)該該有一一個(gè)值值12/20/2022772.9賦賦值運(yùn)運(yùn)算符符和賦賦值表表達(dá)式式左值(lvalue):賦賦值運(yùn)運(yùn)算符符左側(cè)側(cè)的標(biāo)標(biāo)識(shí)符符變量可可以作作為左左值;而表達(dá)達(dá)式就就不能能作為為左值值(如如a+b);賦值表達(dá)達(dá)式可以以;常變量也也不能作作為左值值,右值(lvalue):出現(xiàn)在在賦值運(yùn)運(yùn)算符右右側(cè)的表表達(dá)式左值也可可以出現(xiàn)現(xiàn)在賦值值運(yùn)算符符右側(cè),,因而左左值都可以作作為右值值。12/20/2022782.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式賦值表達(dá)達(dá)式中的的“表達(dá)達(dá)式”,,又可以以是一個(gè)個(gè)賦值表表達(dá)式。例如:a=(b=5)分析:括弧內(nèi)的的“b=5”是是一個(gè)賦賦值表達(dá)達(dá)式,它它的值等于于5。執(zhí)執(zhí)行表達(dá)達(dá)式“a=(b=5)”相當(dāng)當(dāng)于執(zhí)行行“b=5”和““a=b”兩個(gè)個(gè)賦值表表達(dá)式。。賦值值運(yùn)算符符按照“自右而左左”的結(jié)合合順序,,因此,,“(b=5)”外面的括括弧可以以不要,,即“a=(b=5)”和““a=b=5””等價(jià)。12/20/2022792.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式請(qǐng)分析下下面的賦賦值表達(dá)達(dá)式∶(a=3*5)=4*3分析:先執(zhí)行括括弧內(nèi)的的運(yùn)算,,將15賦給a,然后后執(zhí)行4*3的的運(yùn)算,,得12,再把把12賦賦給a。。最后a的值為為12,,整個(gè)表達(dá)達(dá)式的值值為12??梢砸钥吹健谩?a=3*5)出現(xiàn)現(xiàn)在賦值運(yùn)算符符的左側(cè)側(cè),因此此賦值表表達(dá)式(a=3*5)是左值值注意:在對(duì)賦值值表達(dá)式式(a=3*5)求解解后,變變量a得得到值15執(zhí)行行(a=3*5)=4*3時(shí)時(shí),實(shí)際際上是將將4*3的積12賦給給變量a,而而不是賦賦給3*5。不能寫(xiě)成成:a=3*5=4*312/20/2022802.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式賦值表達(dá)達(dá)式也可可以包含含復(fù)合的的賦值運(yùn)運(yùn)算符。。如:a+=a-=a*a;a初值值為12分析:此賦值表表達(dá)式的的求解步步驟如下下∶①先進(jìn)進(jìn)行“aa-=aa*a””的運(yùn)算算,它它相當(dāng)于于a=aa-a*a,a的值為為12--144=-132。。②再進(jìn)行行“a++=-1132””的運(yùn)算算,相當(dāng)當(dāng)于a=a+(-132),,a的值值為-132-132=-264。12/20/2022812.9賦賦值運(yùn)運(yùn)算符和和賦值表表達(dá)式將賦值表表達(dá)式作作為表達(dá)達(dá)式的一一種,使使賦值操操作不僅可以出現(xiàn)現(xiàn)在賦值值語(yǔ)句中中,而且可以以表表達(dá)式形形式出現(xiàn)現(xiàn)在其他他語(yǔ)句((如輸出出語(yǔ)句、、循環(huán)語(yǔ)語(yǔ)句等))中。如:printf("%d",a=b);分析:如果b的的值為3,則則輸出a的值(也是表表達(dá)式a=b的的值)為為3。在在一個(gè)語(yǔ)語(yǔ)句中完完成了賦賦值和輸輸出雙重重功能。。12/20/2022822.10逗逗號(hào)運(yùn)算符和和逗號(hào)表達(dá)式式逗號(hào)運(yùn)算符:將兩個(gè)表達(dá)式式連接起來(lái),又稱為“順順序求值運(yùn)算符”如:3+5,6++8一般形式:表達(dá)式1,表表達(dá)式2求解過(guò)程:先求解表達(dá)式式1,再求解解表達(dá)式2。。整個(gè)逗號(hào)表表達(dá)式的值是是表達(dá)式2的的值。逗號(hào)表達(dá)式的的值為1412/20/2022832.10逗逗號(hào)運(yùn)算符和和逗號(hào)表達(dá)式式例:逗號(hào)表達(dá)式a=3*5,,a*4分析:賦值運(yùn)算符的的優(yōu)先級(jí)別高于逗號(hào)運(yùn)算符,,因此應(yīng)先求解aa=3*5。。a的值為15,然后求解解a*4,得得60。整個(gè)個(gè)逗號(hào)表達(dá)式式的值為600。一個(gè)逗號(hào)表達(dá)達(dá)式又可以與與另一個(gè)表達(dá)達(dá)式組成一個(gè)新的逗號(hào)表表達(dá)式如:(a=3*55,a*4)),a+5先計(jì)算出a的的值等于155,再進(jìn)行aa*4的運(yùn)算算得60(但但a值未變,,仍為15)),再進(jìn)行aa+5得200,即整個(gè)表表達(dá)式的值為為20。12/20/2022842.10逗逗號(hào)運(yùn)算符和和逗號(hào)表達(dá)式式逗號(hào)表達(dá)式的的一般形式可可以擴(kuò)展為表達(dá)式1,表表達(dá)式2,表表達(dá)式3,………,表達(dá)式式n它的值為表達(dá)達(dá)式n的值。。逗號(hào)運(yùn)算符是是所有運(yùn)算符符中級(jí)別最低的例:①x=(aa=3,6*3)②x=a==3,6*3賦值表達(dá)式,,將一個(gè)逗號(hào)號(hào)表達(dá)式的值值賦給x,xx的值等于18逗號(hào)表達(dá)式,,包括一個(gè)賦賦值表達(dá)式和和一個(gè)算術(shù)表表達(dá)式,x的的值為3,整個(gè)逗號(hào)表表達(dá)式的值為為18。12/20/2022852.10逗逗號(hào)運(yùn)算符和和逗號(hào)表達(dá)式式注意:并不是任何地地方出現(xiàn)的逗逗號(hào)都是作為為逗號(hào)運(yùn)算符符。例如函數(shù)數(shù)參數(shù)也是用用逗號(hào)來(lái)間隔隔的。如:printf(“%d,%d,%d”,a,b,c);“a,b,cc”并不是一一個(gè)逗號(hào)表達(dá)達(dá)式,它是p

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論