




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章簡(jiǎn)單的算術(shù)運(yùn)算和表達(dá)式第3章簡(jiǎn)單的算術(shù)運(yùn)算本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符增1和減1運(yùn)算符宏常量與
const常量表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換運(yùn)算符常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符運(yùn)算符(Operator)詳見附錄C常見的運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符類型強(qiáng)轉(zhuǎn)關(guān)系運(yùn)算符邏輯運(yùn)算符增1和減1位運(yùn)算符運(yùn)算符(Operator)詳見附錄C3.1C運(yùn)算符和表達(dá)式
(OperatorandExpression)Example:W+Z操作數(shù)(Operand)運(yùn)算符(Operator)操作數(shù)(Operand)何謂運(yùn)算符和操作數(shù)?3.1C運(yùn)算符和表達(dá)式
(OperatorandExpr3.1.1算術(shù)運(yùn)算符和表達(dá)式加(+)減(-)乘(*)除(/)取余(%)ArithmeticOperators3.1.1算術(shù)運(yùn)算符和表達(dá)式加(+)減(-)乘(*)除除法(Division)Example:W/Z浮點(diǎn)數(shù)除法(FloatDivision)W
和
Z
至少有一個(gè)為實(shí)數(shù)整數(shù)除法(IntDivision)W和
Z都是整數(shù)除法(Division)Example:W/Z浮點(diǎn)數(shù)除法Example:anintanint結(jié)果依然是anint整數(shù)除法(IntDivision)11/5=2Example:anintanint結(jié)果依然是anExample:實(shí)數(shù)除法(FloatDivision)11.0/5=2.2afloatanint結(jié)果是
afloatExample:實(shí)數(shù)除法(FloatDivision)1求余(Modulus)將求余運(yùn)算符左側(cè)的操作數(shù)作為被除數(shù),右側(cè)的操作數(shù)作為除數(shù),二者進(jìn)行整除后的余數(shù)即為求余運(yùn)算的結(jié)果,余數(shù)的符號(hào)與被除數(shù)的符號(hào)相同。規(guī)則:
操作數(shù)必須是整數(shù)Operandsmustbe
int注意!求余(Modulus)將求余運(yùn)算符左側(cè)的操作數(shù)作為被除數(shù),右Example:11%5=1anintanint1152101余數(shù)商求余(Modulus)Example:11%5=1anintanintExample:-11%5=-1anintanint-115-2-10-1余數(shù)商求余(Modulus)Example:-11%5=-1anintaniExample:11%-5=1anintanint11-5-2101余數(shù)商求余(Modulus)Example:11%-5=1anintaninExample:11.0%5=?afloatanintINVALID!
求余(Modulus)注意!Example:11.0%5=?afloatan當(dāng)算術(shù)表達(dá)式包含兩個(gè)或兩個(gè)以上的算術(shù)運(yùn)算符時(shí)
首先要確定運(yùn)算順序所有的運(yùn)算符都有一個(gè)優(yōu)先級(jí)(OrderofPrecedence)
算術(shù)表達(dá)式
(ArithmeticExpression)當(dāng)算術(shù)表達(dá)式包含兩個(gè)或兩個(gè)以上的算術(shù)運(yùn)算符時(shí)算術(shù)表達(dá)式
(
優(yōu)先級(jí)(OrderofPrecedence)
高:
*/%
低: +-不同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——從高到低相同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——算術(shù)運(yùn)算符為左結(jié)合(從左到右)算術(shù)表達(dá)式
(ArithmeticExpression)優(yōu)先級(jí)(OrderofPrecedence)算術(shù)表達(dá)式Example:?48.52.5+6–
–44.52.5+6–2*2=算術(shù)表達(dá)式
(ArithmeticExpression)4.5Example:?48.52.5+6––44.巧妙使用圓括號(hào)改變運(yùn)算順序從內(nèi)往外運(yùn)算Example:(9–(3+2))*3=?算術(shù)表達(dá)式
(ArithmeticExpression)巧妙使用圓括號(hào)改變運(yùn)算順序Example:(9–(3Example:
(9–(3+2))*3=??
–5412(9–(3+2))*3=12算術(shù)表達(dá)式
(ArithmeticExpression)Example:–5412(9–算術(shù)混合運(yùn)算算術(shù)混合運(yùn)算【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和關(guān)鍵是如何分離個(gè)位、十位、百位數(shù)字?153%10
=3153/100=1153-1*100=5353/10=5【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和賦值語句
(AssignmentStatement)三種賦值形式:Simple——簡(jiǎn)單賦值Multiple——多重賦值Shorthand——簡(jiǎn)寫的復(fù)合賦值賦值語句
(AssignmentStatement)三種賦變量的賦值簡(jiǎn)單賦值(SimpleAssignment):
變量=
表達(dá)式;多重賦值(MultipleAssignment):變量1=
變量2=
表達(dá)式;變量的賦值簡(jiǎn)單賦值(SimpleAssignment):多Syntax:
變量x=變量x
運(yùn)算符op
表達(dá)式;
變量x
運(yùn)算符op=表達(dá)式;
3.1.2復(fù)合的賦值運(yùn)算符
(CombinedAssignmentOperators)這種形式看起來更直觀,且執(zhí)行效率一般也更高一些Syntax:3.1.2復(fù)合的賦值運(yùn)算符
(CombiExample:num=num+5;num1515+52020Example:num+=5;等同于
num=num+5簡(jiǎn)寫的賦值運(yùn)算符3.1.2復(fù)合的賦值運(yùn)算符
(CombinedAssignmentOperators)Example:num1515+52020Examp已知inta=3;執(zhí)行a+=a-=a*a后,變量a的值?a+=a-=a*aa+=a-=9a+=-6
a=-123-6-12執(zhí)行a+=a-=a*=a后,變量a的值?a+=a-=a*=aa+=a-=9a+=0
a=03900已知inta=3;3-6-12執(zhí)行a+=a-OperationExamplesofexpressionDescription+=num+=5;num=num+5;-=num-=5;num=num–5;*=num*=5;num=num*5;/=num/=5;num=num/5;%=num%=5;num=num%5;簡(jiǎn)寫的復(fù)合賦值(ShorthandAssignment)3.1.2復(fù)合的賦值運(yùn)算符
(CombinedAssignmentOperators)OperationExamplesofexpressio3.1.3增1和減1運(yùn)算符
(IncrementandDecrement)
n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取n的值,然后加/減1m=n++;m=n;n++;3.1.3增1和減1運(yùn)算符
(IncrementandD3.1.3增1和減1運(yùn)算符
(IncrementandDecrement)
n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取n的值,然后加/減1作為前綴(prefix)運(yùn)算符時(shí),先加/減1,然后取n的值m=++n;n++;
m=n;3.1.3增1和減1運(yùn)算符
(IncrementandDExample:j=++i-2i5等同于
i=i+1;j=i–2;j??46前綴(Prefix
)增1和減1運(yùn)算符Example:i5等同于j??46前綴(PrefExample:j=i++-2i5等同于
j=i–2;i=i+1;后綴(Postfix)增1和減1運(yùn)算符j??36Example:i5等同于后綴(Postfix)增1inta=3;printf("%d",-a++);a3等同于
printf("%d",-a);a=a+1;后綴(Postfix)增1和減1運(yùn)算符4inta=3;a3等同于后綴(Postfix)增1良好的程序設(shè)計(jì)風(fēng)格提倡:在一行語句中,一個(gè)變量只能出現(xiàn)一次增1或者減1運(yùn)算過多的增1和減1運(yùn)算混合,不僅可讀性差,而且因?yàn)榫幾g器實(shí)現(xiàn)的方法不同,導(dǎo)致不同編譯器產(chǎn)生不同的運(yùn)行結(jié)果3.1.3增1和減1運(yùn)算符
(IncrementandDecrement)
良好的程序設(shè)計(jì)風(fēng)格提倡:3.1.3增1和減1運(yùn)算符
(Inc【例3.2】計(jì)算圓的周長(zhǎng)和面積circumference=33.300854area=88.247263【例3.2】計(jì)算圓的周長(zhǎng)和面積circumference【例3.3】計(jì)算圓的周長(zhǎng)和面積Inputr:5.3↙circumference=33.300854area=88.247263在程序中直接使用的常數(shù)稱為幻數(shù)(MagicNumber)
&稱為取地址運(yùn)算符【例3.3】計(jì)算圓的周長(zhǎng)和面積Inputr:5.3↙在使用幻數(shù)存在的問題?假如直接使用常數(shù),會(huì)有什么影響?程序的可讀性變差容易發(fā)生書寫錯(cuò)誤當(dāng)常數(shù)需要改變時(shí),要修改所有引用它的代碼,工作量大,還可能有遺漏解決方案:避免使用幻數(shù)把幻數(shù)定義為常量(宏常量、const常量……)使用幻數(shù)存在的問題?假如直接使用常數(shù),會(huì)有什么影響?3.2宏常量與宏替換
#define
標(biāo)識(shí)符字符串宏常量(Macroconstant)也稱符號(hào)常量一般采用全大寫字母表示宏定義不是語句,而是一種編譯預(yù)處理命令3.2宏常量與宏替換#define標(biāo)識(shí)符【例3.4】計(jì)算圓的周長(zhǎng)和面積宏替換【例3.4】計(jì)算圓的周長(zhǎng)和面積宏替換#include<stdio.h>#definePI3.14159;#defineR5.3;main(){
printf("area=%f\n",PI*R*R);
printf("circumference=%f\n",2*PI*R);}相當(dāng)于執(zhí)行#include<stdio.h>main(){
printf("area=%f\n",3.14159;*5.3;*5.3;);
printf("circumference=%f\n",2*3.14159;*5.3;);}語法錯(cuò)誤計(jì)算圓的周長(zhǎng)和面積一般不以分號(hào)結(jié)尾#include<stdio.h>相當(dāng)于執(zhí)行語法錯(cuò)誤計(jì)算const常量與宏常量相比的優(yōu)點(diǎn)是什么?const常量有數(shù)據(jù)類型某些集成化調(diào)試工具可以對(duì)const常量進(jìn)行調(diào)試3.3const常量【例3.5】定義const常量
const常量與宏常量相比的優(yōu)點(diǎn)是什么?3.3const常1、表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是該類型不同類型數(shù)據(jù)的運(yùn)算結(jié)果,是兩種類型中取值范圍大的那種long
double>double>float>long>int>short>chardoublefloatlongunsignedintchar,short低高3.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符1、表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是取值范圍小的類型賦值給取值范圍大的類型是安全的反之是不安全的若大類型的值在小類型能容納的范圍之內(nèi),則平安無事但是浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù),會(huì)丟失小數(shù)部分,而非四舍五入反之轉(zhuǎn)換后的結(jié)果必然是錯(cuò)誤的,具體結(jié)果與機(jī)器和實(shí)現(xiàn)方式有關(guān)避免如此使用,好的編譯器會(huì)發(fā)出警告注意!取值范圍小的類型賦值給取值范圍大的類型是安全的注意!【例3.6】下面程序演示了賦值中的類型轉(zhuǎn)換【例3.6】下面程序演示了賦值中的類型轉(zhuǎn)換Example:
intx=10; floaty; y=(float)x;
(float)10
10.000000x10y??10.0000003.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)轉(zhuǎn)(Casting)可以消除從大到小的警告
通過下面方式把表達(dá)式的值轉(zhuǎn)為任意類型
(類型)表達(dá)式不改變xExample:(float)1010.000000x1Example:
inttotal,number; floataverage; … average=total/number;
15/2
7total15number2average??7.000000兩個(gè)整數(shù)運(yùn)算的結(jié)果還是整數(shù),不是浮點(diǎn)數(shù)3.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符Example:15/27total15numberExample:
inttotal,number; floataverage; … average=(float)total/number;
15.000000/2
7.500000total15number2average??7.5000003.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符Example:15.000000/27.50000【例3.7】演示類型強(qiáng)轉(zhuǎn)運(yùn)算符m/2=2(float)(m/2)=2.000000(float)m/2=2.500000m=5【例3.7】演示類型強(qiáng)轉(zhuǎn)運(yùn)算符m/2=23.5常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)3.5常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)【例3.8】計(jì)算三角形面積area=sqrt(s*(s-a)*(s-b)*(s-c))area=sqrt(s(s-a)(s-b)(s-c))s=0.5*(a+b+c)s=1.0/2*(a+b+c)s=(a+b+c)/2.0s=(float)(a+b+c)/2s=1/2*(a+b+c)s=(float)((a+b+c)/2)
注意!【例3.8】計(jì)算三角形面積area=sqrt(s*【例3.8】計(jì)算三角形面積Inputa,b,c:3,4,5↙area=6.000000【例3.8】計(jì)算三角形面積Inputa,b,c:3,4,算術(shù)運(yùn)算符+、-、*、/、%,以及優(yōu)先級(jí)增1和減1運(yùn)算符++變量、變量++--變量,變量--宏常量,const常量強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型名)表達(dá)式常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)這一章我們學(xué)到了算術(shù)運(yùn)算符+、-、*、/、%,以及優(yōu)先級(jí)這一章我們學(xué)到了第3章簡(jiǎn)單的算術(shù)運(yùn)算和表達(dá)式第3章簡(jiǎn)單的算術(shù)運(yùn)算本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符增1和減1運(yùn)算符宏常量與
const常量表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換運(yùn)算符常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符運(yùn)算符(Operator)詳見附錄C常見的運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符類型強(qiáng)轉(zhuǎn)關(guān)系運(yùn)算符邏輯運(yùn)算符增1和減1位運(yùn)算符運(yùn)算符(Operator)詳見附錄C3.1C運(yùn)算符和表達(dá)式
(OperatorandExpression)Example:W+Z操作數(shù)(Operand)運(yùn)算符(Operator)操作數(shù)(Operand)何謂運(yùn)算符和操作數(shù)?3.1C運(yùn)算符和表達(dá)式
(OperatorandExpr3.1.1算術(shù)運(yùn)算符和表達(dá)式加(+)減(-)乘(*)除(/)取余(%)ArithmeticOperators3.1.1算術(shù)運(yùn)算符和表達(dá)式加(+)減(-)乘(*)除除法(Division)Example:W/Z浮點(diǎn)數(shù)除法(FloatDivision)W
和
Z
至少有一個(gè)為實(shí)數(shù)整數(shù)除法(IntDivision)W和
Z都是整數(shù)除法(Division)Example:W/Z浮點(diǎn)數(shù)除法Example:anintanint結(jié)果依然是anint整數(shù)除法(IntDivision)11/5=2Example:anintanint結(jié)果依然是anExample:實(shí)數(shù)除法(FloatDivision)11.0/5=2.2afloatanint結(jié)果是
afloatExample:實(shí)數(shù)除法(FloatDivision)1求余(Modulus)將求余運(yùn)算符左側(cè)的操作數(shù)作為被除數(shù),右側(cè)的操作數(shù)作為除數(shù),二者進(jìn)行整除后的余數(shù)即為求余運(yùn)算的結(jié)果,余數(shù)的符號(hào)與被除數(shù)的符號(hào)相同。規(guī)則:
操作數(shù)必須是整數(shù)Operandsmustbe
int注意!求余(Modulus)將求余運(yùn)算符左側(cè)的操作數(shù)作為被除數(shù),右Example:11%5=1anintanint1152101余數(shù)商求余(Modulus)Example:11%5=1anintanintExample:-11%5=-1anintanint-115-2-10-1余數(shù)商求余(Modulus)Example:-11%5=-1anintaniExample:11%-5=1anintanint11-5-2101余數(shù)商求余(Modulus)Example:11%-5=1anintaninExample:11.0%5=?afloatanintINVALID!
求余(Modulus)注意!Example:11.0%5=?afloatan當(dāng)算術(shù)表達(dá)式包含兩個(gè)或兩個(gè)以上的算術(shù)運(yùn)算符時(shí)
首先要確定運(yùn)算順序所有的運(yùn)算符都有一個(gè)優(yōu)先級(jí)(OrderofPrecedence)
算術(shù)表達(dá)式
(ArithmeticExpression)當(dāng)算術(shù)表達(dá)式包含兩個(gè)或兩個(gè)以上的算術(shù)運(yùn)算符時(shí)算術(shù)表達(dá)式
(
優(yōu)先級(jí)(OrderofPrecedence)
高:
*/%
低: +-不同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——從高到低相同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——算術(shù)運(yùn)算符為左結(jié)合(從左到右)算術(shù)表達(dá)式
(ArithmeticExpression)優(yōu)先級(jí)(OrderofPrecedence)算術(shù)表達(dá)式Example:?48.52.5+6–
–44.52.5+6–2*2=算術(shù)表達(dá)式
(ArithmeticExpression)4.5Example:?48.52.5+6––44.巧妙使用圓括號(hào)改變運(yùn)算順序從內(nèi)往外運(yùn)算Example:(9–(3+2))*3=?算術(shù)表達(dá)式
(ArithmeticExpression)巧妙使用圓括號(hào)改變運(yùn)算順序Example:(9–(3Example:
(9–(3+2))*3=??
–5412(9–(3+2))*3=12算術(shù)表達(dá)式
(ArithmeticExpression)Example:–5412(9–算術(shù)混合運(yùn)算算術(shù)混合運(yùn)算【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和關(guān)鍵是如何分離個(gè)位、十位、百位數(shù)字?153%10
=3153/100=1153-1*100=5353/10=5【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和賦值語句
(AssignmentStatement)三種賦值形式:Simple——簡(jiǎn)單賦值Multiple——多重賦值Shorthand——簡(jiǎn)寫的復(fù)合賦值賦值語句
(AssignmentStatement)三種賦變量的賦值簡(jiǎn)單賦值(SimpleAssignment):
變量=
表達(dá)式;多重賦值(MultipleAssignment):變量1=
變量2=
表達(dá)式;變量的賦值簡(jiǎn)單賦值(SimpleAssignment):多Syntax:
變量x=變量x
運(yùn)算符op
表達(dá)式;
變量x
運(yùn)算符op=表達(dá)式;
3.1.2復(fù)合的賦值運(yùn)算符
(CombinedAssignmentOperators)這種形式看起來更直觀,且執(zhí)行效率一般也更高一些Syntax:3.1.2復(fù)合的賦值運(yùn)算符
(CombiExample:num=num+5;num1515+52020Example:num+=5;等同于
num=num+5簡(jiǎn)寫的賦值運(yùn)算符3.1.2復(fù)合的賦值運(yùn)算符
(CombinedAssignmentOperators)Example:num1515+52020Examp已知inta=3;執(zhí)行a+=a-=a*a后,變量a的值?a+=a-=a*aa+=a-=9a+=-6
a=-123-6-12執(zhí)行a+=a-=a*=a后,變量a的值?a+=a-=a*=aa+=a-=9a+=0
a=03900已知inta=3;3-6-12執(zhí)行a+=a-OperationExamplesofexpressionDescription+=num+=5;num=num+5;-=num-=5;num=num–5;*=num*=5;num=num*5;/=num/=5;num=num/5;%=num%=5;num=num%5;簡(jiǎn)寫的復(fù)合賦值(ShorthandAssignment)3.1.2復(fù)合的賦值運(yùn)算符
(CombinedAssignmentOperators)OperationExamplesofexpressio3.1.3增1和減1運(yùn)算符
(IncrementandDecrement)
n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取n的值,然后加/減1m=n++;m=n;n++;3.1.3增1和減1運(yùn)算符
(IncrementandD3.1.3增1和減1運(yùn)算符
(IncrementandDecrement)
n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取n的值,然后加/減1作為前綴(prefix)運(yùn)算符時(shí),先加/減1,然后取n的值m=++n;n++;
m=n;3.1.3增1和減1運(yùn)算符
(IncrementandDExample:j=++i-2i5等同于
i=i+1;j=i–2;j??46前綴(Prefix
)增1和減1運(yùn)算符Example:i5等同于j??46前綴(PrefExample:j=i++-2i5等同于
j=i–2;i=i+1;后綴(Postfix)增1和減1運(yùn)算符j??36Example:i5等同于后綴(Postfix)增1inta=3;printf("%d",-a++);a3等同于
printf("%d",-a);a=a+1;后綴(Postfix)增1和減1運(yùn)算符4inta=3;a3等同于后綴(Postfix)增1良好的程序設(shè)計(jì)風(fēng)格提倡:在一行語句中,一個(gè)變量只能出現(xiàn)一次增1或者減1運(yùn)算過多的增1和減1運(yùn)算混合,不僅可讀性差,而且因?yàn)榫幾g器實(shí)現(xiàn)的方法不同,導(dǎo)致不同編譯器產(chǎn)生不同的運(yùn)行結(jié)果3.1.3增1和減1運(yùn)算符
(IncrementandDecrement)
良好的程序設(shè)計(jì)風(fēng)格提倡:3.1.3增1和減1運(yùn)算符
(Inc【例3.2】計(jì)算圓的周長(zhǎng)和面積circumference=33.300854area=88.247263【例3.2】計(jì)算圓的周長(zhǎng)和面積circumference【例3.3】計(jì)算圓的周長(zhǎng)和面積Inputr:5.3↙circumference=33.300854area=88.247263在程序中直接使用的常數(shù)稱為幻數(shù)(MagicNumber)
&稱為取地址運(yùn)算符【例3.3】計(jì)算圓的周長(zhǎng)和面積Inputr:5.3↙在使用幻數(shù)存在的問題?假如直接使用常數(shù),會(huì)有什么影響?程序的可讀性變差容易發(fā)生書寫錯(cuò)誤當(dāng)常數(shù)需要改變時(shí),要修改所有引用它的代碼,工作量大,還可能有遺漏解決方案:避免使用幻數(shù)把幻數(shù)定義為常量(宏常量、const常量……)使用幻數(shù)存在的問題?假如直接使用常數(shù),會(huì)有什么影響?3.2宏常量與宏替換
#define
標(biāo)識(shí)符字符串宏常量(Macroconstant)也稱符號(hào)常量一般采用全大寫字母表示宏定義不是語句,而是一種編譯預(yù)處理命令3.2宏常量與宏替換#define標(biāo)識(shí)符【例3.4】計(jì)算圓的周長(zhǎng)和面積宏替換【例3.4】計(jì)算圓的周長(zhǎng)和面積宏替換#include<stdio.h>#definePI3.14159;#defineR5.3;main(){
printf("area=%f\n",PI*R*R);
printf("circumference=%f\n",2*PI*R);}相當(dāng)于執(zhí)行#include<stdio.h>main(){
printf("area=%f\n",3.14159;*5.3;*5.3;);
printf("circumference=%f\n",2*3.14159;*5.3;);}語法錯(cuò)誤計(jì)算圓的周長(zhǎng)和面積一般不以分號(hào)結(jié)尾#include<stdio.h>相當(dāng)于執(zhí)行語法錯(cuò)誤計(jì)算const常量與宏常量相比的優(yōu)點(diǎn)是什么?const常量有數(shù)據(jù)類型某些集成化調(diào)試工具可以對(duì)const常量進(jìn)行調(diào)試3.3const常量【例3.5】定義const常量
const常量與宏常量相比的優(yōu)點(diǎn)是什么?3.3const常1、表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是該類型不同類型數(shù)據(jù)的運(yùn)算結(jié)果,是兩種類型中取值范圍大的那種long
double>double>float>long>int>short>chardoublefloatlongunsignedintchar,short低高3.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符1、表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是取值范圍
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)器人機(jī)械臂工作原理
- 農(nóng)機(jī)拖板轉(zhuǎn)讓合同樣本
- 古建筑駁岸施工方案
- 樹皮收購方案范本
- 內(nèi)墻油漆合同樣本
- 人工探管施工方案
- 京東店鋪運(yùn)營合同樣本
- 保溫門窗采購合同標(biāo)準(zhǔn)文本
- 倫敦就業(yè)合同標(biāo)準(zhǔn)文本
- 培養(yǎng)學(xué)生團(tuán)隊(duì)合作精神的活動(dòng)計(jì)劃
- 隨班就讀學(xué)生個(gè)人檔案
- 硫磺安全技術(shù)說明書MSDS
- 公司治理中的法律風(fēng)險(xiǎn)防范資料
- 2017年10月自考00015英語二試卷及答案
- 《母雞》課件 王崧舟 千課萬人 (圖片版不可編輯)
- 國開電大《工程數(shù)學(xué)(本)》形成性考核作業(yè)5答案
- 13、試生產(chǎn)開停工方案
- 暖通工程設(shè)備吊裝施工方案
- JJG 109-2004百分表式卡規(guī)
- GB/T 5597-1999固體電介質(zhì)微波復(fù)介電常數(shù)的測(cè)試方法
- 新疆旅游景點(diǎn)大全課件
評(píng)論
0/150
提交評(píng)論