




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据类型、运算符和表达式2.1数据类型2.2常量和变量2.3运算符和表达式2.4位运算2.5运算符的优先级2.6格式化输入输出函数的进一步讨论2.7常见问题分析2.1数据类型在C语言中,数据类型可分为:2.2常量和变量2.2.1常量(文字量)1.整型常量:整型常量就是整常数。(1)
十进制整型常量: 例如56、-100、2004;(2)
八进制整常量: 必须以0开头,数码取值为0~7。 如:017(15)10、0101(65)10、0177777(65535)10;(3)十六进制整常量: 前缀为0X或0x,其数码取值为0~9,A~F或a~f。 如:0X2A(42)10、0xA0(160)10、0XFFFF(65535)10;(4)整型常量的后缀(L/l、H/h): 如果使用的数超过了整型数的范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。如:158L(十进制为158),012L(十进制为10)2.浮点型常量:也称为实型
它有二种形式: 十进制小数形式 指数形式(1)十进制小数形式:由数字0~9和小数点组成(注意必须有小数点)如:0.0、5.0、3.14、.0、0.(2)指数形式:一般形式为:[±][整数部分][.][小数部分][(e,E)±n][后缀]符号[]表示该组成部分为可选项,但必须遵守浮点数的下列组成规则:①一个浮点数可以无整数部分或小数部分,但不能二者全无;②一个浮点数可以无小数点或指数部分,但不能二者全无;如:.234e+12,25E5,1.23,+1.23e-4f3.字符型常量:用单引号括起来的一个字符,单引号中的内容不能是单引号,双引号和反斜线。字符常量的值就是该字符的ASCII码值。如:’a’、’C’、’=’、’+’、’?’
转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义。广义地讲,C语言ASCII字符集中的任何一个字符均可用转义字符来表示,如:‘\101’表示字母’A’,‘\102’表示字母’B’。常用的转义字符如下表所示:转义字符转义字符的意义ASCII代码\n回车换行10\t横向跳到下一制表位置9\b退格8\r回车13\f走纸换页12\\反斜线符(\)92\'单引号符(‘)39\"双引号符(“)34\a鸣铃7\0空字符(=NULL)\ddd1~3位八进制数所代表的字符\xhh1~2位十六进制数所代表的字符例2.1转义字符的使用#include<stdio.h>voidmain(){charch;ch=‘\36’;//将ASCII码为’\36’即30的字符赋给chprintf(“chis%c\n”,ch);//输出字符,ASCII码为’\36’对应的字符为$
}输出结果为:chis$4.字符串常量:由一对双引号括起的字符序列。字符串常量和字符常量是不同的量。它们之间主要有以下区别:字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量只能是单个字符,字符串常量则可以含一个或多个字符。(3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。(4)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字符数加1。增加的一个字节中存放字符’\0’(ASCII码为0)。这是字符串结束的标志。5.符号常量:
常量除了用上述直接表示方法外,还可以采用符号表示,称为符号常量(又称宏)使用符号常量的好处是:含义清楚;能做到“一改全改”。符号常量在使用之前必须先定义,其一般形式为:
#define标识符常量 #define是预处理命令(预处理命令都以“#”开头), 称为宏定义命令。其功能是把该标识符定义为其后的常量值。如:#definePI3.14 //C的常量形式,无类型C++的常量:constdoublepi=3.14;//有类型例2.2采用宏定义的方式定义符号常量#include<stdio.h>#definePI3.14159//定义符号常量PI,值为3.14159voidmain(){doubleradius=10.0;doubleperimeter;doublearea;
perimeter=2*PI*radius;//使用符号常量area=PI*radius*radius;//使用符号常量
printf("radius=%lf,perimeter=%lf,area=%6.2lf\n",radius,perimeter,area);}输出结果为:radius=10.000000,perimeter=62.831800,area=314.162.2.2变量在程序执行过程中,值可以改变的量称为变量。变量数据类型的说明格式为:
数据类型变量名表[=初值];
例: inta,b,c;floatf,g=3.0;变量的命名必须遵循以下几条规则:必须是以英文字母或下划线开头的,由字母、数字和下划线组成的字符序列。(2)不能与C语言的关键字(保留字)重名,(3)变量名的长度不受限制。但一般不超过32个字符C语言对变量名的大小写敏感。另外,在C语言的长期使用过程中还形成了一些约定俗成的规则:尽量使变量名能够表达出该变量的含义。用户最好不要用下划线来作为变量名的开头。③习惯上符号常量的标识符用大写字母,变量标识符可大小写结合。1.整型变量
在C语言中,整型用int表示。根据整型数在存储器中占用的字节数,又可以用long和short来修饰int,表示长整型和短整型。根据其是否带有符号,又可以用signed和unsigned来修饰int,shortint,longint表示带符号整型和无符号整型。
2.浮点型变量
float单精度型 double双精度型 longdouble长双精度型3.字符变量
字符变量用来存储字符常量,即单个字符。字符变量的类型说明符是char,在C语言中,字符型也可以分为signed和unsigned,它们的区别在于取值范围的不同。可以把字符变量看成是整型量。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。例2.3字符变量与整型量之间的联系#include<stdio.h>voidmain(){ charch='a'; inti=ch; printf("%cASCIIis%d\n",ch,ch);//将字符量按整型量处理 printf("%cASCIIis%d\n",i,i);//将整型量按字符量处理}输出结果为:aASCIIis97aASCIIis97周一9-102.3运算符和表达式“运算符”就是记述各种不同运算过程的符号。按运算对象的数目:单目运算符、双目运算符和三目运算符;按照其功能:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、自增自减运算符、条件运算符、逗号运算符等等。2.3.1表达式2.3.2算术运算符与算术表达式2.3.3关系运算符与关系表达式2.3.4逻辑运算符与逻辑表达式2.3.5自增和自减运算
2.3.6赋值运算符与赋值表达式2.3.7条件运算符与条件表达式2.3.8逗号运算符与逗号表达式2.塘3.橡1表达朗式一般态来讲母,表志达式弦是由域运算救符和佣运算纵量所姿组成的符骡合C的语样法的外算式牢。运蠢算量瞒可以饶是变妙量、具常量、记有返隔回值趣的函饲数等穷。从菌本质惕上讲思,表剪达式适是对运算浩规则项的描葵述并驱按一炉定规屡则执扇行运固算的稻算式水。C语言呼中的猾表达魄式根那据运怪算符池的种傻类可卸以分鄙为:算术挂表达匪式、稼关系咸表达翼式、翅逻辑街表达自式、赋值垄表达雄式、苏条件黑表达旷式、因逗号莫表达冠式混合苍表达廊式等。2.泰3.炸2算术软运算流符与鲜算术女表达治式C语言驶中,创算术厕运算倚符有5个,链它们凉的具葱体含挥义见超下表储:运算符使用形式含义
+单目或双目运算符单目运算表示正号,双目运算表示加法运算
-单目或双目运算符单目运算表示求负,双目运算表示减法运算
*双目运算符乘法运算
/双目运算符除法运算%双目运算符取模运算(求余数)关于图算术胡运算悔符的伴使用旁有以但下规悔则:+、-、*耳、/运算蚊符的寒运算寒量可句为任献何整您型或稠浮点块型的提常量、南变量击、有旗返回泼值的乖函数窝以及全表达快式。(2激)正如匹在数颈学中细除法伐运算焰的除炼数不烘能为0一样坝,在x/岁y中,桂表达式y的取报值也友不能伴为0,否咐则将柜出现瓦错误迫。(3最)固%运算肆符要搏求运晒算量伙必须避是整值型,片且%后面抄的运柱算量拴不能为0。例如:3拉%笑5结果急为3-1秃7乖%纽奉5结果证为-220鲜%胆1芽0结果秆为0(4已)当双靠目运脸算符纵的两球个运籍算量旷的类缎型相促同时旧,它对们的群运算结果半的类裳型与因运算社量类默型相卡同。例如:17介.5甚+恢2毒.5结果享为浮眯点型20暮.016裹/裕7结果炭为整稠型2,小洞数部捕分被冬省去(5芬)当双丑目运选算符临的两执个运锦算量阁的类仓型不楼同时过,运栋算前怕遵循类型让的一针般转泉换规狡则将钱运算浓量自社动转教换成涨相同呀的类歪型,惹运算结果屋的类劲型与米转换津后的勤运算砖量的孕类型搂相同(类型池的一止般转拿换规医则将方在本驶章的园后面产介绍)。例如:塌15仓.5糖+含5操作译数15饭.5的类彩型为虚浮点鬼型,疮运算惹前将掘整型裁数5转换毛成浮圈点型数5.赏0,然宜后进奸行运管算,宰结果捎为浮山点型位数20缺.5例如鸭:16社/答5辞.0结果讽为浮公点型3.已2例2.抽4五种驶算术疼运算蚁示例#i雷nc悟lu滚de期<st煎di蚂o.答h>vo懂id床m梯ai编n(冶){in蓄t凶x,甩y壶;fl缝oa窗t帮x1悄,奶y1般;x挑=娱15醒;y贿=扑6;x1兄=资1砌5.丢0;y1叛=汗6苍.0支;pr叙in疲tf腹("长x=捎%d苏,先y毁=链%d\厦n",祖x析,瞧y)存;pr福in贸tf院("降x+掀y傅=滤%d\效n",肉x阳+驼y效);pr于in滚tf菊("造x–郊y雄=谁%d\惰n",盟x需-夸y市);pr脖in茂tf朋("愚x*原y介=巡寿%d\浸n",芝x恶*毛y因);pr傻in置tf算("蜂x/凶y隶=芽%d挣..荣..柳%d\羽n",妥x极/挠y个,迟\黑x门%碰y病);pr埋in霞tf竿("关x1锅/偷y圣1亦=坊%f女\予n"赚,件x1敬/斩y面1)跪;}运行锯结果浸为:x叶=械15倾,丧y殃=者6x处+都y滨=欲21x慈–翻y客=渠9x澡*考y移=租90x列/并y班=判2.瓦..谅.3x1朝/钢y橡1促=牵2.犯50糖00锤00【说明】:在答数学蒸中恒筐等的讽表达致式,珍在C语言片表达私式中锹不一刮定恒盐等,峡如:6/柱4*选5烧6甚*5顷/架4。建议底:在“/”运算灯符两晨边采辜用fl心oa月t/亿do约ub员le数据(精确诞除)下面博的表课达式察隐含扮了危冶险,环因为赠被0除:18技/(3/痛6)18极/((d廉ou零bl蹲e)椒3/艇6)或者签:“/”两边菊的整玩数有小一个欧在数红尾加钻小数纸点,角如:18润/(骆3.葛/6标)在C语言牵中,渴字符盗型、袄整型矛和浮辰点型变数据手可以在同扔一表狭达式钩中混指合使右用,C语言甘编译软系统墙会按抗照一定逐的准球则自找动进句行类零型转姿换。铅当出反现下抄列三柴种情况时堆发生拨自动唉类型籍转换碗:当双脆目运滩算符命的两扫个运苹算量臣结果脊的类挺型不侄相同且进他行算厉术运夹算时恶;(2格)当一僚个值泻赋予愚一个朗不同择类型农的变得量时羞;(3卸)函数差调用,实参授与形蛾参类恐型不体同时准。在本尖节中辰仅介溜绍前粥两种籍转换毯,函数撇调用麻转换毒将在捐本书的菊后面喊部分棋介绍切到。1.算术必运算狐时的旅自动顿类型虚转换它的测基本卡规则加可描永述为概:双耗目运辛算符院的两符个运算量轿中,充值域俊较窄己的类貌型向役值域摘较宽出的类疤型转翅换。“值犹域”醒就是敢类型页所能眯表示培的值版的最坝大范膝围。袋算术陕转换遵庸循的废转换剃方向员如下债图所政示:同时携要注凉意几旦点:表达赴式中暖的有馅符号剥和无鸣符号告字符光以及膏短整亮型一猴律被规转换慈为整还型,都如果in拨t类型幕能表主示原挨来类楚型的斑值,嫂则转衡换成in著t类型姓,否碧则转颠换成un星si聚gn咐ed类型兴。(2吨)当算统术运貌算中荒出现fl冬oa岩t类型眨时,丛首先概将fl俩oa义t转成do读ub狠le类型恭。例如肚:fl戚oa担t捷f己=驻3.斥6;in无t墙n潜=获6;lo填ng就k故=抹2白1;do银ub春less=昨f江*皱n蛛+呢k疑/翅2;do矩ub锁ledo域ub俗lelo丑ngdo科ub百ledo嘱ub倦le2.赋值第运算士时的容自动波类型玻转换赋值状转换滥将右么值表纤达式型结果课的类客型转拉成左阿值表辅达式的数男据类乒型。闭赋值宗转换雹具有筝强制湿性(隐朋式)疫,它不受算凡术转闻换规段则的葡约束主,转爸换结帽果的黑类型良完全乐由左值表熄达式时的类椅型决种定。例如事:in护ti,果j;fl压oa伶t槽m;i东=度m肌*雷j;周一12类型堡转换吊过程伶为:垮赋值缴运算柜符右侧的曲表达厦式的亭值为fl述oa股t/爹do歇ub腿le类型挨,经纽奉过赋店值转场换变富成in不t类型捷,所旨以赋苦值表吃达式质的值劈燕为in拿t类型呆。3志.强制寒类型躬转换(显盏式)强制虾类型容转换歌是靠强制荷类型黎转换外运算能符来实现玩数据径类型齐转换睁的,纳因此风强制互类型肺转换烈也叫做每显式房诚转换群。强制惊类型努转换器表达绑式形巡寿式为吩:(类型绣名)(表约达式姻)作用打是将劣表达太式结容果类攻型转圆换成栋“类鞠型名犬”所芳指定归的类多型。例如:fl攀oa即tm,测n(in捎t)构m将变富量m的值的渡类型转换财成in候t类型,表达任式的绩值为in超t类型宗。(in底t)论m+状n表达嘱式的即结果较为do移ub术le类型需要灿注意惠的是,无雅论是笋自动态类型贸转换础还是趴强制弦类型窃转换摇,都坛只是现将变获量或蚂常量输的值壳的类趋型进塌行暂持时的哀转换令,用肚于参手与运耗算和指操作翠,而变密量和六常量源本身栽的类铸型和疗数值央并没慈有改带变。2.真3.训3关系支运算忠符与码关系翠表达愈式C语言台中的鼻关系虑运算阻符包房诚括:<(小于)<=(小于加或等鬼于)=财=(等于)>=(大于辆或等暖于)>(大于)!=(不等么于)关系党运算防符都律是双犁目运屿算符渣,它让用来摧比较暴两个吊运算扭量之惯间的本关系蔬。用茶关系估运算查符将抓前、搅后两灿个运汇算量星连接抖起来荷的式项子称告为“榜关系筹表达惠式”亭,这两个睛运算研量可俊以是尘任意脊表达袜式。当词关系煤表达棒式成兼立时姜,表法达式言的结教果为游整数1,否萝则为负整数0。例2.能5关系请表达信式的趁值#i装nc铲lu胖de铃<st莫di乐o.唇h>vo茫id吩m招ai吩n(菌){ch林ar伪c赏h1哄,c渡h2乳;ch役1忙=勉'a劣';ch抵2闸=全'b贝';pr循in买tf侧("践%c==滨%醉c-凉--峡-%胳d\弯n"陆,c讽h1蚁,c剖h2呢,c猎h1冬=劫=半ch盼2)辅;pr覆in兽tf抬("省%c<以%c寨--币--加%d钉\n受",挥ch拼1,劳ch熔2,逆ch象1奥<浓ch在2)凯;pr粗in可tf魂("删%c>扮%c谋--赏--捞%d拘\n高",洁ch织1,万ch购2,达ch仪1谷>赚ch茂2)回;pr问in塑tf拆("雁%c<=稿%贩c-怀--助-%法d\罗n"达,c英h1例,c忽h2墙,c散h1环<选=军ch捆2)觉;pr父in船tf垃("糊%c>=秀%御c-弦--仰-%铜d\嘱n"除,c派h1刻,c绍h2痒,c胖h1职>从=朱ch衰2)透;pr党in茫tf卷("需%c!=涛%鲜c-辈--窗-%凝d\伐n"坊,c元h1算,c炉h2陷,c颜h1婚!向=太ch线2)宜;}运行裙结果夹为:a眉==连b神--败--保0a因<根b库--夏--缠1a凑>抓b血--蜜--辛0a席<=很b猛--顶--叉1a嚼>嚼=公b-踢--耳-0a曲!燥=蔑b-包--汇-1①优先港级<、<=、>、>==自=、!疲=②关系塞运算弄符与终算术请运算捆符和撕赋值杏运算释符比兽较优芽先级算术积运算舞符关系滨运算摔符高低高低③关系运算符的结合性——左结合性
【例】a=3,b=2,c=1;求: a>b>c的值
第一步:3>2关系成立,结果为1; 第二步:1>1关系不成立,结果为0。①②C语言旅中的逻辑夹运算贴符包括稻:&&(逻辑姑与)||(逻辑通或)!(逻辑帅非)其中汽,逻议辑与龄和逻诉辑或淋是双弯目运场算符逆,逻功辑非是您单目率运算医符。乐逻辑撞运算购符及慌运算红量按扰一定规膀则所羽构成嚷的表附达式颤称为逻辑浆表达继式。2.旱3.障4逻辑威运算谊符与健逻辑秩表达葬式C的语隶法将厨参与械逻辑毙运算秘的两屑个运别算分截量解蚁释为壮逻辑宾量,但通腐常逻幻玉辑运烟算符舍两边饱的运腹算分忧量可但以是盖一般遵表达眯式。该因此卧,就需先将纽奉这些办表达失式的偷结果验数值粮转换见为逻惑辑值“真”或“假”,再两来进材行逻倍辑比棚较。逻辑蛇运算捐分量货对应概的表炕达式童转换坛为逻删辑量嘴的规吓则:若运摘算分赞量的佛值为非0的任怖意数,则朗为逻素辑“真”;若运井算分帽量的霸值为0,则模为逻蜂辑“假”;逻辑终运算熟符的屡运算禽规则标见下程表:表达式X表达式Y!X!YX&&YX||Y非0非00011非000101非0非01011001111例2.章6逻辑原运算赏符&&的使抖用#i底nc绿lu廊de所<st碰di股o.酬h>vo叹id歪m椅ai洋n(暑){in沫t兵a鹿,检b北,党c套,泪ma唤x;a哪=嚼10便;b仆=饶20创;ma扮x偷=肌b;c洗=华(杯a吸<晌b匙)到&&圆(滋m鹊ax矩=友=敞a叫)渡;pr丝式in倘tf金("青a=饼%d枪,扬b课=约%勾d证,哀c倘=锁%d携,哪m肢ax泼=烦%d\搁n"灭,a种,b有,c筋,m循ax);}运行库结果草为:a间=轰10侵,全b渣=岁2锹0答,套c挑=促0五,宪ma妹x辅=席20在数搅学中瓣经常啄有右苦边的鲜表达索式:1<陕=x劳<=关h腰(零h>舱=1押),在Pa罢sc桨al语言潮中是锯用逻泰辑运晌算符箭将两睡个关慌系表阿达式纠连接屿起来惑表示送,x>瓶=1抓a润nd古x神<=矩h;在C语言厌中,也必鹿须用贫类似盗的方教法表怖示:x>露=1容&案&夺x<偶=h,直接露写成1<待=x泄<=妈h,结聚果如芹何?对C来说基是符片合语坡法的,因腐为它必是一伤个关尤系表趣达式则,按颤左结妇合求幸解①1洁<=鲜x,若x取值兼满足槽条件梯则表惠达式司结果牲为1,然皆后②1干<=铁h,显然齿关系样成立遍,因劲此,扭总的甩关系秋成立个,结院果为“真”。由剃分析辰可见况,x>观h时前竖面的垂关系卫表达美式结嚼果也梯为认“真虹”。那显然道,这汁种书改写方乖式不朗能起寨到对狐应的违条件夺限制加作用淹。例:京判断映某个精字符C是否帅为数锋字字痒符,碧正确鸡的写戏法:if腥(苏c>鼠=‘掌0’痒&胳&狗c<抓=‘闻9’为)羊{·括··供}若写交成:if钟(宿‘尽0’汗<=悉c<栋=‘答9’汇)街{居··季·}则当C为AS经CI宗I码大辱于57的其然它字班符(稼如‘a’、‘A’、··光·)都可帽以使火表达欣式为“真”。【经典零示例】d岁!=葬0讽&&荐n侄/生d熔<0(假设初始芒值:d=长0)由于d弃!=肺0关系桶不成旁立,仓逻辑毒量为“假”,因外为逻辱辑“与”运算扩等效黎于乘贱法,塌即只亮要两澡个运脉算分魔量中答有一仍个为耗逻辑“假”,则招整个彩逻辑“与”运算重就为“假”。故而羊,本姨例中n/盗d<鸣0将不像被运喷算!衡!从贡而避拘免被0除,昨增加药程序飘的健膨壮性演!逻辑皆运算界符的碧优化起算法编译裕程序在处市理含剂有&&和||的表甚达式弄时,马往往求采用优化消算法,有华的书刃上称奸之为“短路剖器”,即源自左贪而右老一旦匪能确诊定结俗果的纺真假练,则山求值临的计耀算立闹即结皮束,余也就恋是说组,并垄不是贼表达乡丰式中梳的所胖有逻涝辑运漫算符墨都被晨执行鹿,或睡者说非,不盐是所煤有的死逻辑晋运算驶分量恰都被搬计算乌。vo父id朵ma姥in翠(抬){in黎ta骆,找b摔,真c雅;a薄=赚b浸=蚕c再=1途;pr撒in笑tf(“疯(寇1)塞%d拳\棵n暴”折,无++闭a挪|捐|晋+附+掠b月&&彻++严c歉)绝;pr喘in袭tf(“缩慧(何2)椒%d浴\胳t熔%d渐\愉t付%d睛\坛n虑”脆,识a梁,献b嘉,雪c灿)幻玉;pr骄in以tf(“棕(悟3)呢%d跳\配n需”蹄,堡+寺+a朽&蜜&势++属b率|来|+勒+c毁)课;pr妄in城tf(“糕(师4)迎%d疮\蛋t常%d票\跑t图%d欲\船n订”尚,寻a途,速b立,索c轧)凶;pr封in闲tf(“驻(蜂5)复%d臂\昆n然”骂,悉–氧–安a船|轮|笋–纳–瓦b混|猛|兵–丹–猪c球)充;pr耕in残tf(“软(吐6)音%d伙\岗t共%d什\勿t僻%d奔\恩n裹”果,诸a挠,龟b轰,曾c筝)确;pr次in逗tf(“脏(行7)步%d恩\悠n庭”先,骑–集–卖a刷&彩&剂–供–劈燕b作&简&犹–偷–画c尝)写;pr洽in购tf(“健(酸8)抗%d头\耗t寒%d伏\友t菌%d荷\秤n满”脸,级a财,车b辈,手c乖)件;pr医in隔tf(“铃(巨9)船%d省\子n叹”暂,狐–切–音a璃|民|洪–摔–律b行&梨&辈–昆–c亲)籍;pr艰in绝tf(“映(忙10么)胳%蕉d恭\t扎%角d您\t桨%肉d踢\n额”掌,搁a灶,寨b蓬,配c呜)前;}结果抓输出淘:12汤1半1()()()13圆2骆112吧2驳101芳1吴000她0配0自增炒、自纪减运切算符位分别孔为:++(自增)--(自减)++和--分别登都有抄两种坚不同拜的形站式:前置伞式:++详i、--辅i后置列式:i+降+、i-讨-2.伞3.共5自增昆和自疗减运子算前置威运算仪是变盯量先楼自增1或自泳减1后,再参杜与其退他的乓运算,即先变翠后用泡;引闻用的但是新断值例如:x悟=顷0博;充y脂=框-丛-掌x迟+华x;结果定为x=台-1佳,y晃=-夜2(2揪)后置完运算词是该涨变量走先以坛原来赢的值蛛参加些其它书运算鲜,然后烧再自赚增1或自色减1,即先用积后变恭;引热用的性是旧小值例如孔:x颂=场10顺;采y搏=匆x吓++宋+北x帆;结果崇为x侨=绿11挠,唱y州=侍20;(3矩)自增劲自减办运算珠符只嘱能作贴用于携变量用,不渔能用触于常闲量和表忠达式亭以及吨函数书调用。例2.当7自增染自减替运算抚符的涉运算#i炊nc编lu平de苏<st扮di刑o.太h>vo银id眨m宝ai迈n(击){in董tx,渠y;x裁=素0;y天=呢10阳;/*变量x先输除出值锄,再状自增凶,变脾量y先自钩增,再输泛出值兴*/pr孟in脱tf徐("音x=利%d袖,惩y接=盲%d\征n",糖x磨+倍+叹,嚷--舌y移);pr她in森tf端("星x=眨%d胡,厅y家=楼%d\患n",跃x俩,侧y余);}运行戒结果器为:x紧=签0赞,兄y局=联9x锯=泄1蛛,识y蹦=锅91.基本壤赋值举运算辞“=桑”它的惨一般步表达警式形池式为酒:左值任表达哄式=右值糟表达奇式赋值选表达休式的丢值等于驴表达兽式左卡值变胶量的宣值例如:in炭ti,稀jch贿ar锻m姥,nfl枕oa吃tx,象ydo肯ub热le口zj依=古ii赚=爆mz聚=悼x注*灯i2.画3.且6赋值预运算墙符与配赋值豆表达穷式i提=州m污<起nm柔<端n的结萄果为振整型嘱,无扭需转级换,呈直接送将值鸽赋给ii要=茎j嫁=拔10(考数虑结预合性规)相当京于i=伐(j终=1爸0)伤,先将10赋给j,而括草号中庭的赋键值表虹达式孤(j=置10)的断值就逃是赋互值后还的j的值,再将仍其赋功给i(考誓虑类雕型转吧换)(考虑皆优先何级)2.复合紫赋值猫运算在赋霸值运籍算符扶“=”前加吩上其黄他运肠算符贴,便基构成池了复合稳赋值蒙运算镇符。C语言占中的膛复合筐赋值贵运算宇符共词有10种:+=、-=、*=、/=、%=、&=、|=、^=、<<抱=、>>恋=复合纱赋值宅表达虹式的境形式某为:左值举表达染式op渡=右值掏表达乓式例如蚕:i纷+=漏j等价田于i胃=拴i趴+衰jx塔*=似y符-邮5等价脖于x饱=帖x率*读(y夹-5咱)m呼<<谦=勇2等价驰于m杂=系m盾<<庄2【例】in纱ta,尝b,棚c渔;计算常表达躲式县:a获=(启b=雕4)翠+(鬼c=橡6)结果诸:b=疲4,浪c巡寿=6茫,磁a疮=1庙0赋值游运算项符是夕目前摄介绍粒的最低锡优先淋级的运傻算符怀。假如似把上狐例的郑表达宋式改让写:a番=b些=4阀+(堂c=员6)则结数果:b=桌10将,悔c=存6,需a界=1披0而改熄为a谎=b正=4电+c册=6则错钢误,芒因为(4父+c泳)不能座作左丙值。注:C+贩+中(a发=4挖)工=2规8正确党,(a=读4)可以忍产生扰一个春左值达。(a歌=4培+b粗)+联+正确窜赋肤值表血达式应体现创了C+慨+语言姜的灵菠活性忠。周一12引,懂9-规10破0选50输5条件冈运算助符(丛?免:挡)是C语言纤中唯夫一的枯一个液三目专运算脖符,抄与三法个表猴达式朽分量皇一起咏构成勺条件援表达裹式:表达语式1歪?表达难式2张:表达袭式3其值宗:2.衡3.坚7条件诉运算挡符与锅条件员表达肝式即表达式3的值当表达式1的值0时即表达式2的值当表达式1的值非0时【例】ma挂x钩=追(霜a餐>丽b兆)疼?爽a:b技;将a父,垫b中最轻大的帅数赋匀值给笋变量ma驾xmi俭n朋=逐(劲a迫<么b麻)桂?抄a:b脆;将a张,冰b中最控小的雹数赋醒值给页变量mi醉n。【例】a=(n==0)?a:b;
a=[(n==0)?a:b];printf(“%c”,c>=‘’?c:‘?’); printf(“%c”,c>=‘’?c:‘?’);
c=a>b?a:b*b; c=(a>b)?a:(b*b);()优先级: 关系运算符 高 逻辑运算符 ?:条件运算符 赋值运算符 低结合性——右结合性a>b?a:c>d?c:d (a>b)?a:((c>d)?c:d)若:a=1,b=2,c=3,d=4,则表达式值=4。表达直式2和表杨达式3可以傍不同牺类型跟,此劳时条悼件表角达式音的值翅的类逐型为吸二者旷中较私高的炼类型辨,如彻:x>衬y?未1:幕1.攻5,若x>坡y关系仙成立掏,则凤表达侍式结辆果为1.蔽0均(罚d军ou评bl幼e类型)。例2.轿8条件扬运算是符的稠使用#i末nc斗lu雨de物<st仓di陡o.哥h>vo闸id宵m英ai标n(液){in撇ta,朋b,抗c;a职=满10胸;b赶=略-5狠;c登=孟b涛>捏0增?a+装b:绝a-烘b;/*当b>加0时,c的值秤等于a+尼b;当b<壁0时,c的值滴等于a-雹b摘*扣/pr桥in辱tf酒("怨a=锋%d,铲b=下%d,乎a+老|b较|软=叶%d\蛙n"傍,a猎,b决,c);}运行哪结果凳为:a英=箭10季,b舱=抚-岛5,盆a盯+远|b荷|湿=1运5附:炸在C+齿+中有饰下面吹一条紧语法狸规则那:在一锁个条托件运长算符固的表青达式寒中,冰如果扯后面船两个析表达何式的锄值类逝型相唯同,傍而且歼均可委以作膜为左青值,茎则该负条件沙运算嘉符的受值是疼一个淹左值冬表达功式。埋如:in思tx=遍5;浪lo研ng散a扛,杀b趣;迅(击x?辱a愈:姨b)启=1梯;/旨/注:搞若x为真创,则a变量键的值永将被钱赋值田为1(x触?问x:暖b追)猴=浅2;必//x和b不是铃相同巷类型局,条厅件运洽算符锣将作姨自动狭转换户,经磁过转需换类痛型的阿表达膏式不服能再健作为狮左值苍。(x?截a适:傍6.赏6)舅=江3;京//6.仍6不是震左值第一蕉表达们式可鞠以为提非左旱值的扭表达惧式,局如:(x傍=华=0丸?a谈:b局)肚=重8;逗号沸运算冷符构拴成逗胆号表唉达式泳,结堤构为史:表达题式1塘,表达贷式2给,表达乳式3,河…请…择,表达纳式n运算盆过程兄为:恩先求白表达蹦式1的值袭,然恳后再煎求表踪蝶达式2的值泼,依赶次计饿算下誉去,妖最后石表达临式n的值涉也就致是该岭逗号蔑表达助式的互值。例如:in华tb,既a=1帖0;伟//分隔晚符b上=救a+祥+,a送%通3//逗号芦运算意符(顺桥序计喇算运饱算符铺)先求顾表达于式1的值乌,结膜果为10,同台时对a计算沃后缀++,此拨时a的值乐为11;然后此求表乐达式2(a%闲3)的值匠,由员于在企计算题表达摇式2之前拥,变竭量a的自顽增运算象已经营完成蜘,因那而表漫达式2的值戴为2。这津样整言个逗盾号表躺达式差的值误为2。2.们3.轮8逗号覆运算歉符与舌逗号骄表达钓式si朵ze蒜of运算捐符1、格仔式:si鼓ze针of(类型吓名)2、含义心:求某古种数挨据类笋型的律变量灭存储还空间权的长参度(哥以字企节为云单位总)。批该运呢算符晌是在编译诉时执右行,而止不是悟在程资序执果行时至进行资运算不。3、应范用类型午名可革以是C语言饼的基怠本数足据类锁型或沫者构尺造数温据类厉型(谊如:上数组小、指嘉针、大结构杨等)枯,如:si掩ze键of(st惊ru岗ctst角ud吐en单t算)in集tar时ra搂y[胳7]滚;si置ze木of(莫ar次ra辟y栏)si泡ze冷of(in条t);si脾ze嫩of(in桑t*肥)2.躬4位运赛算2.压4.勒1按位树与运杜算符助“&”2.甚4.筝2按位开或运寸算符赠“|”2.随4.启3按位吹异或纺运算拐符“^”2.嘱4.停4二进牵制左薯移运误算符遍“<<陕”2.匪4.郊5二进眼制右岁移运曲算符壮“>>挥”2.接4.系6按位续取反链运算冻符“~”2.配4.扁1按位茂与运悦算符跨“&”按位闪与运算诸是对孝两个肯操作备数逐仅位求与,当它并们都堤为1时,结果希为1,否则肥为0。与意运算喂符的天定义谷如下贤表所灶示:位1位2位1&位2000010100111例如:a否=0符x9汤6,纺b=脉0x掉80答,则a&雀b的结仔果为0x询80运算证过程姓为:按位“与标”的作尖用:(1浓)将某荒些位软清零在实敞际应驱用中酬通常年遇到助这样翅一种离情况扑,根晶据特今定的桶需要极将某紧些数字的且某些扔二进散制位抚清零蛋,如杜要将日某端驻口控厅制的次某些魔发光赠二极同管熄架灭,缘瑞实际上问是将亿某个烫控制沙数的购对应馅位清必零,烧如a=惹0x线55甲,要将a的低循四位攀清零神,那就要挨将a与一撑个数维进行供按位惠与运袖算,魔这个堡数的暴低四珍位为派零其湖它位拆为1。运算反过程家如下晚:运算摊的结娘果是傻对象稍数据敲的低攻四位非清0,其除它不怜变。(2陆)取数嚷中的湖特定著位与上池述操秆作相滑反,摄在实幅际操栋作中凳通常锄要求朝保持晒某些替位的猎状态,阔如a=刮0x购55衰,要保晴持a的低商四位蚊,其仁它位醋清零途,那才就要棚将a与一辨个数进肝行按乘位与江运算亮,这边个数膝的低舍四位帽为1其它疏位为0。运算燥过程惧如下焰:运算丛的结袋果是叶对象己数据驰的低回四位挺不变溉,其候它清02.研4.素2按位截或运批算符胳“|”按位销或运算裹是对拿两个右操作巩数逐眠位相或。当尾它们昏都是0的时设候,结果钓为0,否则潮为1。下表庸为位锦逻辑钥或操逗作的杀“真催值表烧”位1位2位1|位2000011101111运算库过程嫩为:例如:a概=0岛x3蠢6,管b=戏0x办55架,则a透|尖b的结总果为0x桥77按位“或雕”的作淹用(1肢)将数弃的某绣些位帮置1在实遥际应糠用中翁有时狸也遇缺到这拴样一喷种情塌况,予根据春特定蜡的需版要将某些往数字腊的某嚼些二下进制竞位置1,如意要将浑某端明口控胡制的轰某些葡发光跨二极管点掉亮,花实际晚上是萝将某顿个控绍制数姻的对咽应位乞置1,如a=嗓0x陶55芳,要将a的低四运位置1,那潮就要具将a与一栗个数饥进行匆按位盖或运挨算,漂这个利数的邪低四位为1其它赤位为0。运算侄过程劲如下:运算懒的结捧果是怕对象态数据等的低普四位伞置1其它吐不变(2戒)把一值串二裁进制辰数连由接到焰另一属串二纪进制兔数后在实策际应老用中银有时首也需钳要将妥一串阶二进殊制数双连接前到另茎一串稼二进有制数后,翠如通伍讯中增的CR欣C校验潮就是币这样瞧,对号于这倍样的述问题俭一般方是这工样处唐理的:刊先在款对象耻字符揭串的杰末尾趋加上N个零吵,N为要漂连接暖的二臣进制宫串的认位数,魔然后学进行细按位疮或操赔作,对得到抚的结椒果即饮为所幕求。解如a=细0x狭55粉,要连拉接的妹数据为8位二葛进制饮串,脆表示牌成十屈六进掘制为0x听aa再;则首元先将a的后拥面加8个0(2袜);变成0x列55躲00浸,然后孩与0x姥aa按位漠或。2.考4.幅3按位轮异或倦运算械符“^”按位异或运算屯是将剃两个姐操作第数逐溪位相缸异或,当它叶们一个袖为1,一个刮为0时,其相描异或枣的结渗果为1,否则赞为0。下表痛为位逻瘦辑异茎或操导作的样“真催值表阔”位1位2位1^位2000011101110运算该过程纳为:从所稼得的嚼结果筝看,币某位工要保浓持不难变就知异或0,某鲜位要辽取反燃就异调或1。2.先4.执4二进肺制左非移运倾算符从“<<俭”二进勤制左岗移运海算符挖把数枝据向梁左移攀动若之干位,移出后左边另界的脖所有包位都柴将丢童失,右侧含新增绩加的丽位为0。例如叔:in皆t星a傅=摩4想,校a惠<<童2的结乐果为16变量a的内烈存表帮示:00掉00用00梯00灰0萌00在00依10腿0左移2位:00鞭00掩00记00院00秤01婶00沃00跟,对应贺结果半为16。向左蝇移动课一位淘等同亩于乘元以2,向左六移动壮两位年等同语于乘梢以4因此购可以振得到元一个丸规律注:在变那量可匠以表棉示的悲范围抬内,替向左耀移动n位等鲜同于荣乘上2的n次方递。2.盟4.铸5二进低制右铲移运鸭算符非“>>茄”二进慕制右储移运政算符裤把数紧据向顶右移干动若信干位,移出泽右边恩界的锣所有位都稍将丢醋失,左侧场的新暖位的毅补充为遵循碧下面缠的规废则:【例】变量a是无柔符号技数,a=要8,其二筑进制删表示尿为00屿00哥10哗00税,右移1位且坛左侧刷新位脏补0后结蒙果为00支00俭01厕00鞭,所以a>满>1的结游果为4.由例俗子可蜻知,向右版移动堵一位其相当发于整翠除以智一个21。a>魂>4的结是果为0(1挪)对于或无符痕号数,右移暂时左殿侧的迫新位舞一律搏补0,称为糠“逻辑筐右移”(2胳)对于降有符格号数,若符头号位获是0,则左羽侧新廉位一魔律补0;若饰符号欣位是1,则左冲侧新牛位一李律补1,称为疼“算术艳右移”齐又摩叫“符号膏位扩抛展”【例】变量a是有慎符号毒数,a=-1,其二喜进制套表示存为:11料11润11铺11浴…1右移1位且筑左侧贸新位际补1后结邮果为11艺11垦11樱11痛…1己,所以a>帅>1的结央果为天-1.?a>惊>2的结妥果仍肚为-1(un蚀si签gn医ed)a>联>1的结呢果为21泽47倒48晴36软47或32咳76暗7?2.失4.毫6按位房诚取反赏运算迁符“~”按位魂取反检运算荐符是足将操乖作数厦进行鹅逐位姨“取恭反”归。例如:变量a=泪0x挡6a,二父进制啄表示吼为01悉10肉10彩10,按位窄取反器后为10著01群01镜01,所蚂以~a的结汉果为0x雹95。2.芝5运算鉴符的昆优先寻级和志结合粉性C语言魔将44个运播算符亡分为15个优锯先级恋,1级最扰高,2级次网之,焦以此痰类推紧,15级最督低。困优先叹级高则的运秧算符模先执滚行运会算。茎运算淘符的疏结合相性是近指当聚一个非运算矩对象册两侧腾的运姿算符般优先配级相垃同时茧,进致行运疫算处汽理的断结合层方向尊。结涂合方侄向分戴为:左结穿合、膊右结蚀合。2.遣7运算首符的茫优先刊级和结结合低性总恼结一、奔优先蛾级优先钟级是骂用来新确定信运算吴的先刑后顺峰序,劲更具市体地璃说,庆当某尺个运精算分舌量的橡两边乔各有姐一个关运算捆符时敲,此浇时该笔运算稍分量速将参猪与哪享边运垮算符乎的运贤算就激要考剩虑运炸算符迫的优近先级主,如次:b+瓣c踢*凶d中的c将和d一起太参与诵乘法喝运算陵,然肯后中斜间结畅果与b一起应参与嘴加法仅运算伴。下面块给出扫一些笨注释息,它僻有助身于掌近握C的运算盲符优限先原柔则:2.匹7运算括符的舌优先攻级和赔结合俱性总自结3、叶基本诸运算滩符优灾先级代最高耐,在晒任何涨情况凭下“()”最优剃先。1、卷所有俭运算案符归串纳为腐8层徒:①蜜基本脊运算班符②窃单目模运算赠符③泄算术新运算根符④摩关系积运算跪符⑤下逻辑俯运算聚符⑥糟条件积运算昂符⑦沸赋值惨运算谊符⑧茎逗号富运算封符;2、灵位运包算符膏优先而级容俘易混妈淆,示通常呆使用旁括号淹。除培了移调位运偿算符台外,倦其它刚位运衰算符寄与逻击辑运旷算符撑相邻炒,但给比逻寒辑运骆算符昼优先毯级高计,又倾比关理系运涌算符攻低。4、禁单目裂运算董符比件二目霸、三勒目运月算符抹优先拢级高罩。5、译算术陵运算妄符优律先级乓比关真系运缺算符锋高。6、没关系乌运算态符优医先级罪比逻养辑运久算符绸高。7、事条件裙运算凝符优丛先级荣高于扬赋值密运算瓶符。8、柳赋值筹运算歇符优预先级粥低于伪除逗纽奉号运支算符验以外觉的所球有运牙算符剥。9、来逗号蛾运算潜符优详先级悬最低抛。 基本运算符:()[].—> 单目运算符:!~++--—+(类型)*&sizeof() 算术运算符:*/%+— 移位运算符:<<>> 关系运算符:<<=>>===!= 位运算符:&^| 逻辑运算符:&&|| 条件运算符:?: 赋值运算符:=+=—=*=/=%=<<=>>=&=^= |=高低二、南结合屡性当运船算分挎量两锻边的院运算纠符是菠同优头先级宣时,绞这时叛就要豪考虑拍处于颈同优牺先级称的两盗个运避算符椒的结瓦合性屠了,买即运该算分夏量将秧同哪男一边副的运兆算符跌结合惧。C语言梅中同钥优先磁级的酸运算窝符结乘合性编不外帆乎两隶种:胶左结齿合性葛、右梳结合愚性。素绝大昂部分先运算酷符是拿左结赌合性签,只津有赋值蛇运算版符、条件覆运算弄符和单目基运算稻符为右泡结合殊性。如:x=淋y=峰0;z惠+=瘦-纱x+序+渔+y芒;筛z别+=窗(参-(池x+判+)蠢+孝y)露;例如:in畜tx,订y,惜zz=姜y喇<=胞-x问+2系&&笼!x表达僵式中脸各运伙算符睛的优励先顺励序为哪:“!”喘=“仇-”(负捕号运挠算符)>“惑+”(加逃法运溜算符喘)>“衬<=困”>关“&肢&”兰>“散=”。所撞以表达式士的运步算过斑程可孩以表茶示为辣:z=罢(y构<=斤(-啊x+句2)屿)款&&教(!耀x)。2.敲6格式白化输蠢入输感出函标数的晌进一忘步讨暖论格式字符说明d以带符号的十进制形式输出整数(正数不输出符号)o以八进制无符号形式输出整数x,X以十六进制无符号形式输出整数,用x则输出十六进制数的a-f时以小写形式输出.用X时,则以大写字母输出u以无符号十进制形式输出整数c以字符形式输出,只输出一个字符s输出字符串f以小数形式输出单双精度数,隐含输出6位小数e,E以指数形式输出实数,如用"E",则输出时,指数以大写"E"表示(如1.2E+02)2.见6.前1.格式梦化输妖出函惰数pr轰in搂tf()在格促式说吴明中,在%和上劲述格匆式字态符间茧可以兼插入舞以下始几种面附加仁符号(又称青修饰技符)见下殊表:字符说明字母l(h)用于长(短)整型整数,可加在格式符d,o,x,u前面m(代表一个正整数)数据最小宽度n(代表一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数-输出的数字或字符在域内向左靠;无"-"时,在域内向右靠把它崇归纳门成三屋类加华以说蓝明:(1煤).整数①%d,按盏整数岗型数屯据的专实际乓长度糊输出泳。②%md,速m为指块定的熟输出挖字段侵的宽具度。柱如果产数据绪的位评数小榴于m,则百左端男补以卫空格圈,若概大于m,则热按实旋际位路数输愉出。婚如pr刷in展tf径("缓%3虎d,吐%3哈d"财,x钻,y占);若x=鹊12研3,收y=鼠12前34梅5,则今输出畅结果疾为12挠3,有12随34帮5③%l叼d,输棚出长凤整型拼数据功。如lo躺ng建i奔nt害x辣=2两56翻79辱0;pr该in拿tf留("定%l士d"阴,x);如果锦用%d输出超,就贞会发登生错衫误,汽因为不整型撕数据惨的范锄围为—3塔27佣68~32滤76疏7。对lo暑ng型数衰据应暗当用%l消d格式掀输出穿。对汉长整皇型数午据也陡可以堡指定挥字段径宽度淋,如商将上滨面pr议in绩tf函数策中的叼“%l把d”改为皂“%8共ld扭”,则吓输出细为:25纤67锦90(2膏)字符建串s格式衰符,垫用来盘输出期一个啊字符速串。术有几杆种用番法:①%s,例康如:pr塘in教tf触("佣%s令",锦"C腰HI尘NA")
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 非遗背景下河南通许女红类方言词汇调查研究
- 宫颈癌的主要护理诊断
- S71200通信与故障诊断
- 小班心理健康:高兴的时候
- 露营设计方案规划与实施
- 幼儿园生活常规教育课件
- 农村健康科普超声
- 颈椎肩周中医课件
- 颈椎与脑部健康课件图片
- 物业安保消防培训
- 广州市艺术中学招聘教师考试真题2024
- 工业自动化设备保修及维修管理措施
- 期末作文预测外研版七年级英语下册
- 2025-2030中国儿童鱼油行业销售动态及竞争策略分析报告
- 统编版五年级升六年级语文暑期衔接《课外阅读》专项测试卷及答案
- 小小理财家课件
- DB43-T 2622-2023 医疗导管标识管理规范
- 译林版一年级下册全册英语知识点梳理
- 案场物业制度管理制度
- CJ/T 316-2009城镇供水服务
- 2025年无人机驾驶员职业技能考核试卷:无人机飞行操作与维护培训试题
评论
0/150
提交评论