C語(yǔ)言程序設(shè)計(jì)教程(第2版)-課件 第2章 數(shù)據(jù)類(lèi)型、表達(dá)式_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程(第2版)-課件 第2章 數(shù)據(jù)類(lèi)型、表達(dá)式_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程(第2版)-課件 第2章 數(shù)據(jù)類(lèi)型、表達(dá)式_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程(第2版)-課件 第2章 數(shù)據(jù)類(lèi)型、表達(dá)式_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程(第2版)-課件 第2章 數(shù)據(jù)類(lèi)型、表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩65頁(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)介

第二章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式

本章要點(diǎn)數(shù)據(jù)的描述規(guī)則數(shù)據(jù)的操作規(guī)則C語(yǔ)言的基本元素一、符號(hào)集(字符集)(1)大寫(xiě)字母:A~Z(2)小寫(xiě)字母a~z(3)阿拉伯?dāng)?shù)字:0~9(4)下劃線:_(5)標(biāo)點(diǎn)符號(hào)和運(yùn)算符二、標(biāo)識(shí)符用來(lái)標(biāo)記常量、變量、函數(shù)及文件名字的字符序列。標(biāo)識(shí)符的構(gòu)成規(guī)則:(1)以字母(大小寫(xiě)皆可)或下劃線開(kāi)頭(2)隨后可跟若干個(gè)(包括0個(gè))字母、數(shù)字、下劃線如:xy3_imaxELSEX

(合法)

7xint#Nobadone(不合法)注意:C語(yǔ)言區(qū)分大小寫(xiě),如sum和SUM是兩個(gè)標(biāo)識(shí)符。三、關(guān)鍵字(附錄B)也稱“保留字”,它是C語(yǔ)言中具有特定含義、專門(mén)用作語(yǔ)言特定成分的一類(lèi)標(biāo)識(shí)符。ANSI推薦的C語(yǔ)言的關(guān)鍵字是32個(gè)如:int、char、float、void等注意:所有的關(guān)鍵字都有固定的意義,不能用作其他。所有關(guān)鍵字都必須小寫(xiě)。如:else與ELSE代表不同含義

else是關(guān)鍵字,ELSE用戶定義的標(biāo)識(shí)符2.1C的數(shù)據(jù)類(lèi)型C語(yǔ)言提供了以下一些數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型空類(lèi)型(無(wú)值類(lèi)型)void枚舉類(lèi)型enum數(shù)組類(lèi)型結(jié)構(gòu)類(lèi)型

struct聯(lián)合類(lèi)型union

基本類(lèi)型整型int字符型char實(shí)型(浮點(diǎn)型)單精度實(shí)型

float雙精度實(shí)型

double

2.2常量與變量1、常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量。常量區(qū)分為不同的類(lèi)型:整型100,125,-100,0實(shí)型3.14,0.125,-3.789字符型‘a(chǎn)’,‘b’,‘2’字符串“a”,“ab”,“1232”常量和符號(hào)常量2、符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表的一個(gè)常量。定義方法:#define標(biāo)識(shí)符常量例2.1符號(hào)常量的使用

#definePRICE30

#include<stdio.h>

intmain()

{

intnum,total;

num=10;

total=num*PRICE;

printf("total=%d\n",total);}運(yùn)行結(jié)果:

total=300說(shuō)明:如再用賦值語(yǔ)句給PRICE賦值是錯(cuò)的

PRICE=40;/*錯(cuò)誤,不能給符號(hào)常量賦值*/說(shuō)明:程序中用#define命令行定義PRICE代表常量30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進(jìn)行運(yùn)算變量其值是可以改變的量,它用標(biāo)識(shí)符(變量名)來(lái)表示,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。變量名實(shí)際上是以一個(gè)名字代表一個(gè)地址,在對(duì)程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。變量的定義方法

類(lèi)型符標(biāo)識(shí)符如:inti,j;charc1,c2;floatx,y;doublez;變量命名的規(guī)定:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。例:sum,_total,month,Student_name,

lotus_1_2_3,BASIC,li_ling

M.D.John,¥123,3D64,a>b

注意:編譯系統(tǒng)將大寫(xiě)字母和小寫(xiě)字母認(rèn)為是兩個(gè)不同的字符(習(xí)慣上,符號(hào)常量用大寫(xiě))。建議變量名的長(zhǎng)度最好不要超過(guò)8個(gè)字符。在選擇變量名和其它標(biāo)識(shí)符時(shí),應(yīng)注意做到“見(jiàn)名知意”,即選有含意的英文單詞(或其縮寫(xiě))作標(biāo)識(shí)符。要求對(duì)所有用到的變量作強(qiáng)制定義,也就是“先定義,后使用”。student_name->s_namestudent_num->s_num2.3整型數(shù)據(jù)整型常量即整常數(shù)。在C語(yǔ)言中,整常數(shù)可用以下三種形式表示:(1)十進(jìn)制整數(shù)。

如:123,-456,4。(2)八進(jìn)制整數(shù)。以0開(kāi)頭的數(shù)是八進(jìn)制數(shù)。

如:0123表示八進(jìn)制數(shù)123,等于十進(jìn)制數(shù)83,(3)十六進(jìn)制整數(shù)。以0x開(kāi)頭的數(shù)是16進(jìn)制數(shù)。如:0x123,代表16進(jìn)制數(shù)123,等于十進(jìn)制數(shù)291。

整型常量的表示方法整型變量(1)整型數(shù)據(jù)在內(nèi)存中的存放形式在內(nèi)存中是以二進(jìn)制的補(bǔ)碼表示。如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/補(bǔ)碼:

一個(gè)正整數(shù)的補(bǔ)碼和該數(shù)的原碼(即該數(shù)的二進(jìn)制形式)相同。如果數(shù)值是負(fù)的,求負(fù)數(shù)的補(bǔ)碼方法是:將該數(shù)的絕對(duì)值的二進(jìn)制形式,按位取反再加1。注意:十進(jìn)制數(shù)10的二進(jìn)制形式為1010,TurboC2.0和TurboC++3.0為一個(gè)整型變量在內(nèi)存中分配2個(gè)字節(jié)的存儲(chǔ)單元(不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,VC++6.0則分配4個(gè)字節(jié))。數(shù)值是以補(bǔ)碼(complement)表示的。存儲(chǔ)有符號(hào)整數(shù)時(shí)存儲(chǔ)單元中的第一個(gè)二進(jìn)制位(即最高位)用來(lái)代表數(shù)值符號(hào)。(2)整型變量的分類(lèi)有符號(hào)基本整型有符號(hào)短整型有符號(hào)長(zhǎng)整型無(wú)符號(hào)基本整型無(wú)符號(hào)短整型無(wú)符號(hào)長(zhǎng)整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)注意:括號(hào)表示其中的內(nèi)容是可選的。例如:整數(shù)13在內(nèi)存中實(shí)際存放的情況:(3)整型變量的定義:

C規(guī)定在程序中所有用到的變量都必須在程序中定義,即“強(qiáng)制類(lèi)型定義”。例如:inta,b;(指定變量a、b為整型)

unsignedshortc,d;

(指定變量c、d為無(wú)符號(hào)短整型)

longe,f;(指定變量e、f為長(zhǎng)整型)例2.2整型變量的定義與使用#include<stdio.h>intmain()

{inta,b,c,d;/*指定a、b、c、d為整型變量*/

unsignedu;/*指定u為無(wú)符號(hào)整型變量*/

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf(”a+u=%d,b+u=%d\n”,c,d);

}運(yùn)行結(jié)果:a+u=22,b+u=-14

說(shuō)明:可以看到不同種類(lèi)的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算.

0000000000001100a0000000000001010u0000000000010110a+u1111111111101000b0000000000001010u1111111111110010b+ub=-24先計(jì)算其絕對(duì)值24的二進(jìn)制形式0000000000011000

按位取反再加1為11111111111010001111111111110001減1取反0000000000001110負(fù)數(shù)的絕對(duì)值14是負(fù)數(shù)-?整型常量的類(lèi)型

(1)一個(gè)整數(shù),如果其值在-32768~+32767范圍內(nèi),認(rèn)為它是int型,它可以賦值給int型和longint型變量。(2)一個(gè)整數(shù),如果其值超過(guò)了上述范圍,而在-2147483648~+2147483647范圍內(nèi),則認(rèn)為它是為長(zhǎng)整型。可以將它賦值給一個(gè)longint型變量。(3)如果所用的C版本(如TurboC)分配給shortint與int型數(shù)據(jù)在內(nèi)存中占據(jù)的長(zhǎng)度相同,則它的表數(shù)范圍與int型相同。因此一個(gè)int型的常量同時(shí)也是一個(gè)shortint型常量,可以賦給int型或shortint型量。

(4)一個(gè)整常量后面加一個(gè)字母u或U,認(rèn)為是unsignedint型,如12345u,在內(nèi)存中按unsignedint規(guī)定的方式存放(存儲(chǔ)單元中最高位不作為符號(hào)位,而用來(lái)存儲(chǔ)數(shù)據(jù))。(5)在一個(gè)整常量后面加一個(gè)字母l或L,則認(rèn)為是longint型常量。例如:123l,432L,0L用于函數(shù)調(diào)用中。2.4浮點(diǎn)型數(shù)據(jù)兩種表示形式浮點(diǎn)型常量的表示方法小數(shù)指數(shù)0.1233e-3注意:字母e(或E)前后必須有數(shù)字,且e后面的指數(shù)必須為整數(shù).1e3、1.8e-3、-123e-6e3、2.1e3.5、.e3、e

類(lèi)型:缺省為double;后綴f或F,為float型;后綴l或L,為longdouble型。規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字.

例如:123.456可以表示為:

123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e其中的1.23456e3稱為“規(guī)范化的指數(shù)形式”。浮點(diǎn)型變量(1)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式一個(gè)浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。與整型數(shù)據(jù)的存儲(chǔ)方式不同,浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。(2)浮點(diǎn)型變量的分類(lèi)浮點(diǎn)型變量分為單精度(float型)、雙精度(double型)和長(zhǎng)雙精度型(longdouble)三類(lèi)形式。單精度(float型):占4個(gè)字節(jié),7位有效數(shù)字(3.4e-38~3.4e+38)雙精度(double型):占8個(gè)字節(jié),15~16位有效數(shù)字(1.7e-308~1.7e+308)

longdouble型:占10個(gè)字節(jié),15~16位有效數(shù)字(3.4e-4932~1.1e+4932)(3)浮點(diǎn)型數(shù)據(jù)的舍入誤差

#include<stdio.h>

intmain()

{floata,b;

a=123456.789e5;

b=a+20;

printf(“a=%f,b=%f\n”,a,b);

}

運(yùn)行結(jié)果:a=12345678848.000000,b=12345678868.000000說(shuō)明:一個(gè)浮點(diǎn)型變量只能保證的有效數(shù)字是7位有效數(shù)字,后面的數(shù)字是無(wú)意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”小的數(shù).若數(shù)據(jù)超過(guò)有效位,則被舍去,故可能產(chǎn)生誤差。

2.5字符型數(shù)據(jù)

(1)用單引號(hào)包含的一個(gè)字符是字符型常量如:‘a(chǎn)’、‘A’、‘b’、‘*’、‘$’(2)轉(zhuǎn)義字符:特殊的字符常量,都以“\”開(kāi)頭(代表一個(gè)字符)\n換行,移到下一行開(kāi)頭\0空值\t橫向跳格(每8列為一制表位)\v縱向跳格\r回車(chē),移到本行開(kāi)頭\a報(bào)警\b退格\f走紙換頁(yè)\\反斜杠\’

輸出單引號(hào)\dddddd表示1到3位八進(jìn)制數(shù)字(字符的ASCII碼)

如:‘\101’

代表字符‘A’\xhh

hh表示1到2位十六進(jìn)制數(shù)字如:‘\x41’

代表字符‘A’字符常量輸出格式控制輸出字符例2.5轉(zhuǎn)義字符的使用

#include<stdio.h>

intmain(){printf(“a\t\rf\tg\n″);

顯示屏上的運(yùn)行結(jié)果:fg例2.5轉(zhuǎn)義字符的使用

#include<stdio.h>

intmain(){printf(“a\t\rf\tg\n″);

printf("h\ti\b\bjk\n″);

顯示屏上的運(yùn)行結(jié)果:fghjk例2.5轉(zhuǎn)義字符的使用

#include<stdio.h>

intmain(){printf("abc\tde\rf\tg\n″);

printf("h\ti\b\bjk\n″);

顯示屏上的運(yùn)行結(jié)果:fgdehjk字符變量字符型變量用來(lái)存放字符常量,注意只能放一個(gè)字符。字符變量的定義形式如下:

charc1,c2;unsignedcharc3,c4;

字符型變量的賦值方法:

c1=‘a(chǎn)’;c2=‘\101’;c3=0xff;c4=‘\377’;一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法(1)一個(gè)字符常量存放到一個(gè)字符變量中,實(shí)際上并不是把該字符的字型放到內(nèi)存中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲(chǔ)單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。abab

#include<stdio.h>intmain(){charcl,c2;c1='a';c2='b'printf("oc%c",cl,c2);c1=97;c2=98;printf("oc%c",cl,c2);}(2)字符數(shù)據(jù)與整型數(shù)據(jù)可以相互賦值(3)字符數(shù)據(jù)可以以字符形式輸出,也可以用整型數(shù)形式輸出。intmain(){inti;charc;i=‘a(chǎn)’;c=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,i,i);}等同于:i=97;c=‘a(chǎn)’;例2.6向字符變量賦以整數(shù)。

#include<stdio.h>

intmain()

{charc1,c2;

c1=97;

c2=98;

printf(“%c%c\n”,c1,c2);

printf(“%d%d\n”,c1,c2);

}運(yùn)行結(jié)果:ab

9798說(shuō)明:在第4和第5行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當(dāng)于以下兩個(gè)賦值語(yǔ)句:

c1=’a’;c2=’b’;因?yàn)椤痑’和’b’的ASCII碼為97和98例2.7大小寫(xiě)字母的轉(zhuǎn)換

#include<stdio.h>

intmain()

{charc1,c2;

c1=’a’;

c2=’b’;

c1=c1-32;

c2=c2-32;

printf(“%c%c”,c1,c2);

}運(yùn)行結(jié)果:AB說(shuō)明:程序的作用是將兩個(gè)小寫(xiě)字母a和b轉(zhuǎn)換成大寫(xiě)字母A和B。從ASCII代碼表中可以看到每一個(gè)小寫(xiě)字母比它相應(yīng)的大寫(xiě)字母的ASCII碼大32。C語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。字符’a’的存儲(chǔ)形式

01100001intmain(){charc;c=‘\376’;printf(“%c,%d\n”,c,c);}八進(jìn)制數(shù)376(十進(jìn)制為254)ASCII碼字符為:11111110unsignedcharc;

,-2,2541111110100000010字符串常量1、字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列.

合法的字符串常量:

“Howdoyoudo.”,“CHINA”,“a”

,“$123.45”

可以輸出一個(gè)字符串,如

printf(“Howdoyoudo.”);‘a’是字符常量,“a”是字符串常量,二者不同。如:假設(shè)c被指定為字符變量:charc;c=’a’;c=“a”;c=“CHINA”;

結(jié)論:不能把一個(gè)字符串常量賦給一個(gè)字符變量。2、C規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè)“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C規(guī)定以字符’\0’作為字符串結(jié)束標(biāo)志。如:如果有一個(gè)字符串常量”CHINA”

,實(shí)際上在內(nèi)存中是:CHINA\0

它占內(nèi)存單元不是5個(gè)字符,而是6個(gè)字符,最后一個(gè)字符為’\0’。但在輸出時(shí)不輸出’\0’。2.6變量賦初值(1)C語(yǔ)言允許在定義變量的同時(shí)使變量初始化如:inta=3;//指定a為整型變量,初值為3

floatf=3.56;//指定f為浮點(diǎn)型變量,初 // 值為3.56charc=‘a(chǎn)’;//指定c為字符變量,初值為‘a(chǎn)’(2)可以使被定義的變量的一部分賦初值。如:inta,b,c=5;表示指定a、b、c為整型變量,但只對(duì)c初始化,c的初值為5(3)如果對(duì)幾個(gè)變量賦以同一個(gè)初值,應(yīng)寫(xiě)成:inta=3,b=3,c=3;

表示a、b、c的初值都是3。

不能寫(xiě)成:inta=b=c=3;

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

整型(包括int,short,long)、浮點(diǎn)型(包括float,double)等可以混合運(yùn)算。例如:10+’a’+12.3-3.14*’x’是合法的。在進(jìn)行運(yùn)算時(shí),不同類(lèi)型的數(shù)據(jù)要先轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算。

2.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式C運(yùn)算符(1)基本的算術(shù)運(yùn)算符:+(加法運(yùn)算符,或正值運(yùn)算符。如:3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如:5-2、-3)*(乘法運(yùn)算符。如:3*5,2*x,3*(a+b))/(除法運(yùn)算符。如:5/3,(x+y)/(a+b))1)兩個(gè)整數(shù)相除,其值為整數(shù),如:5/3值為1,舍去小數(shù)部分;2)除數(shù)、被除數(shù)有一個(gè)為負(fù)值時(shí),結(jié)果”向零取整”,如-5/3=-1;3)除數(shù)、被除數(shù)有一個(gè)為實(shí)數(shù)時(shí),結(jié)果為double型(1)基本的算術(shù)運(yùn)算符:%(模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)。-7%4,7%-4,-7%-4的值為多少?-3,3,-3符號(hào)由被除數(shù)決定(2)算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子,稱為C算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。例如:a*b/c-1.5+’a’3.14*r*rx+sqrt(0.25*y)/(abs(a+b)-3.6)

優(yōu)先級(jí)在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如先乘除后加減。結(jié)合性算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左后右?3)強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符可以利用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類(lèi)型。一般形式:(類(lèi)型名)(表達(dá)式)例如:(double)a將a轉(zhuǎn)換成double類(lèi)型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)(5%3)將5%3的值轉(zhuǎn)換成float型注意:與(int)x+y不同例2.8強(qiáng)制類(lèi)型轉(zhuǎn)換。

#include<stdio.h>

intmain(){floatx;

inti;

x=3.6;

i=(int)x;/*不影響x單元的內(nèi)容*/printf("x=%f,i=%d\n",x,i);

運(yùn)行結(jié)果:x=3.600000,i=3說(shuō)明:有兩種類(lèi)型轉(zhuǎn)換,一種是在運(yùn)算時(shí)不必用戶指定,系統(tǒng)自動(dòng)進(jìn)行的類(lèi)型轉(zhuǎn)換,如3+6.5。第二種是強(qiáng)制類(lèi)型轉(zhuǎn)換。當(dāng)自動(dòng)類(lèi)型轉(zhuǎn)換不能實(shí)現(xiàn)目的時(shí),可以用強(qiáng)制類(lèi)型轉(zhuǎn)換。注意:x的類(lèi)型沒(méi)有發(fā)生改變。(4)自增、自減運(yùn)算符作用是使變量的值增1或減1如:++i,--i(在使用i之前,先使i的值加(減)1)i++,i--(在使用i之后,使i的值加(減)1)i++與++i的區(qū)別:++i是先執(zhí)行i=i+1后,再使用i的值;i++是先使用i的值后,再執(zhí)行i=i+1。例2.9:

#include<stdio.h>intmain(){inti=0,j;j=i++;printf(“%d%d\n”,i,j);i=0;j=++i;printf(“%d%d\n”,i,j);}區(qū)分:j=i+1;j=++i;011注意:

(1)自增運(yùn)算符(++),自減運(yùn)算符(--),只能用于變量,而不能用于常量或表達(dá)式。如:5++、--(a+b)不合法。(2)++和--的優(yōu)先級(jí)高于算術(shù)運(yùn)算符,結(jié)合方向是“自右至左”。如:-i++相當(dāng)于-(i++)。(3)C語(yǔ)言中有的運(yùn)算符為一個(gè)字符,有的運(yùn)算符由兩個(gè)字符組成,為避免誤解,最好采取大家都能理解的寫(xiě)法。例如:不要寫(xiě)成i+++j的形式,而應(yīng)寫(xiě)成

(i++)+j的形式2.9逗號(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ò)程:

1)求解表達(dá)式1

2)再求解表達(dá)式2

3)整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。逗號(hào)表達(dá)式的值為14例:逗號(hào)表達(dá)式a=3*5,a*4分析:逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的,因此應(yīng)先求解a=3*5。a的值為15,然后求解a*4,得60。整個(gè)逗號(hào)表達(dá)式的值為60。

一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式如:(a=3*5,a*4),a+5先計(jì)算出a的值等于15,再進(jìn)行a*4的運(yùn)算得60(但a值未變,仍為15),再進(jìn)行a+5得20,即整個(gè)表達(dá)式的值為20。逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n它的值為表達(dá)式n的值。逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的例:①x=(a=3,6*3)②x=a=3,6*a逗號(hào)表達(dá)式,包括一個(gè)賦值表達(dá)式和一個(gè)算術(shù)表達(dá)式,x的值為3,整個(gè)逗號(hào)表達(dá)式的值為18。

注意:并不是任何地方出現(xiàn)的逗號(hào)都是作為逗號(hào)運(yùn)算符。

如:printf(“%d,%d,%d”,a,b,c);“a,b,c”并不是一個(gè)逗號(hào)表達(dá)式,它是printf函數(shù)的3個(gè)參數(shù)printf(“%d,%d,%d”,(a,b,c),b,c);

“(a,b,c)”是一個(gè)逗號(hào)表達(dá)式,它的值等于c的值。例:#include<stdio.h>intmain(){inta=1;printf(“結(jié)果為:%d\n”,a=3*a,3*a);}結(jié)果為:3(a=3*a,3*a)結(jié)果為:92.10賦值表達(dá)式和賦值語(yǔ)句一、賦值運(yùn)算符“=”用法:變量=表達(dá)式作用:將表達(dá)式的值賦給變量(常量、變量是表達(dá)式的特例)如:a=5;

ave=(a+b)/10;注意:與數(shù)學(xué)中的等式不同!二、復(fù)合的賦值運(yùn)算符在賦值符“=”之前加上其他運(yùn)算符,構(gòu)成復(fù)合賦值運(yùn)算符+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=如:a+=3等價(jià)于a=a+3x*=y+8等價(jià)于x=x*(y+8)

溫馨提示

  • 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)論