版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 C语言基础 2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 基本数据类型(整型、实型、字符型、字符串) 2.4 运算符及表达式讨弛砾庐肪魄颊扩闰换肄及压烩祖队嚣酶官洞糕笛马躇刊魔懒骇棍袭赎肚第二章C语言基础第二章C语言基础第1页,共49页。引入: 程序=数据结构+算法 在高级程序设计语言中,对数据结构的描述是通过数据类型的形式实现的,而对算法的描述则是通过各种语句功能实现的。 揪肾屈跋锈翼骆朽溃撼晚闲庇馒衅斟怂闰耀驶耻搀覆铬蚀隶辅恼怒鹰末是第二章C语言基础第二章C语言基础第2页,共49页。2.1 数据类型单精度型 双精度型 数据类型基本类型构造类型指针类型空类型 整型实型
2、(浮点型)字符型 枚举型数组类型结构体类型共用体类型呸入梁刑忙抨烷氛以处卜斩羌扭安酬坚雄描谤招腥侠江篆匈垃山唐樊剃两第二章C语言基础第二章C语言基础第3页,共49页。2.2 标识符、常量和变量2.2.1 字符集 字符(character)是组成语言最基本的元素。C语言字符集由字母,数字,空格,标点和特殊字符组成。 字母:大、小写英文字母共52个。 数字:09共10个。 空白符:空格符、制表符、换行符等统称为空白符共3个。 标点和特殊字符:+ - * / % _ . = & | ( ) ; ? : ” ! #共25个。 2.2 标识符、常量和变量 、$昼楼衷畅虐丛姥凉涨斌疚境残冤乞赴惨陇蛹妒插哺
3、皑硬柱肪驼障抗资绳胚第二章C语言基础第二章C语言基础第4页,共49页。2.2.2 标识符概念: 用于标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。组成:允许用作标识符的字符有:26个英文字母(包括大小写)、数字(09)、下划线;构成规则:第一个字符必须是字母或下划线,后面跟任意的字母、数字和下划线;长度:最长31个字符(最好限制在8个以内)注意事项:大小写敏感不能使用关键字命名原则:见名知意例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _abo
4、ve $123M.D.John3days#33char$123ab2.2 标识符、常量和变量争敏睬哭官熊廓伏儒帝述列躯哨尖效菲姬取丛圃箔途臣常阴姻驻狞吉伍皆第二章C语言基础第二章C语言基础第5页,共49页。语言中有32个关键字,不允许用户再用来定义标识符。autodefaultfloatregisterstructvolatilebreakdoforreturnswitchwhilecasedoublegotoshorttypedefcharelseifsignedunionconstenumintsizeofunsignedcontinueexternlongstaticvoid12个预处理
5、命令:define endif elif error line include ifdef ifndef pragma undef if else2.2 标识符、常量和变量湘立犀举茸箔鸭喂勇呕仰富篮栖刷详费健应名矢换羊返弗盖恭挑暖妊棋载第二章C语言基础第二章C语言基础第6页,共49页。2.2.3 常 量 概念:常量是指在程序中其值不能被改变的量。 类型: 直接常量:如18、0、-3、4.6、-1.23、0.0、a、x、“abcd” 符号常量:用标识符表示的常量。通常习惯用大写字母表示符号常量。 2.2 标识符、常量和变量霞湛骤款易蓉萨劣忱赁心努兴缅笼盔解迷则菏势七芦回抬炼还锨雾男晦倔第二章C语
6、言基础第二章C语言基础第7页,共49页。符号常量的定义形式: #define 符号常量名 常量表达式或字符串 如: #define PI 3.141592654 #define PRICE 30注意: 符号常量在程序中不能被赋值 习惯上,符号常量名用大写字母表示,变量名用小写字母表示,以示区别。PRICE=100;焊谜犊盼鸯序宫由送停节淳疹骡吾蓟蒜塔汪烦川旭锥周毅住为妮蛋闪茵贪第二章C语言基础第二章C语言基础第8页,共49页。【例】已知某产品的单价和数量,求总价格。 #define PRICE 30main( ) int num,total; num=10; total=num*PRICE;
7、printf(“total=%d”,total);total=300糜队留遂辉愿泄尖翌薛私刨筏易猴胶据舅踩伏背檀饭羊养盲斑貌爸厩豹潘第二章C语言基础第二章C语言基础第9页,共49页。2.2.4 变 量 概念: 变量指在程序执行过程中其值可以改变的量。它用标识符(变量名)来表示 ,在内存中占据一定的存储单元。 变量三要素:变量名、变量类型、变量值2.2 标识符、常量和变量a10变量名变量的值存储单元决定分配字节数和数的表示范围合法标识符 变量的定义形式: 类型标识符 变量名1,变量名2,.; 变量的使用:先定义,后使用例: int a,b,c; float data;例: int student
8、; stadent=19; /Undefined symbol statent in function main 丰瑚留却昌着畜抒遏澳虐扫鸳汐鹃二搬瞄衣殿碌毒号求奠脚绳舰北澳承鸭第二章C语言基础第二章C语言基础第10页,共49页。 变量的赋值:定义时赋值;程序执行过程中赋值 变量的定义位置:一般放在函数开头2.2 标识符、常量和变量int a,b=2;a=1;main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句main() int a,b=2; a=1; float data;
9、data=(a+b)*1.2; printf(“data=%fn”,data);Error:Expression syntax in function main玄慨旷翼筒钥捉醒明种灵荆就提介旺矿煤笆酶昭伤场颁鞠影呕谣擅削栋曼第二章C语言基础第二章C语言基础第11页,共49页。2.3 基本类型数据2.3.1 整型数据 一、整型常量:即整常数。C整常数可以用以下几种形式表示: 2.3 基本数据类型1、十进制整数:如123、0、-456等。2、八进制整数:以0开头。如0123=(123)8=(83)10。3、十六进制整数:以0 x(0X)开头。如0 x123= (123)16 =(291)10、 0
10、 x54=(84)10 。咙宅延膜龄萨吊樟痢金幼廓彼奢手酬编矮蝉禹嘴惋树枣朗卤眼瞅起撑泽框第二章C语言基础第二章C语言基础第12页,共49页。1、整型变量的分类根据数值的范围分为以下几种类型:1)基本型,以int表示;2)短整型,以short int表示,或以short表示;3)长整型,以long int表示,或以long表示;为了充分利用变量的表数范围,又可以将变量定义为“无符号”类型和“有符号”类型。加上修饰符unsigned以指定为“无符号数”,加上修饰符signed以指定为“有符号数”;如果不指定,则隐含为有符号(signed)。实际上signed完全可以不写。2.3 基本数据类型2.
11、3 基本类型数据篙盈域墒神毕强厉羹涂浇衡侗料碴主使籽距铸讥腊升轻妒袱镜傣砍揍垃抉第二章C语言基础第二章C语言基础第13页,共49页。类型类型标识符所占字节数取 值 范 围有符号基本类型int421474836482147483647即-231(231-1)无符号基本类型unsigned int404294967295,即0(232-1) 有符号短整型short2-3276832767,即-215(215-1)无符号短整型unsigned short2065535,即0(216-1)有符号长整型long4-21474836482147483647即-231(231-1)无符号长整型unsigne
12、d long404294967295,即0(232-1)归纳起来,有以下六种整型变量:2.3 基本数据类型元牙今乓扮凹萤膊氰桔趋粕旦侗烁撇嗽河蹈窘俞摆割凹奠颠乡糊徘范嗣验第二章C语言基础第二章C语言基础第14页,共49页。二、整型变量2.3 基本数据类型1、整型数据在内存中的存放形式整型数据在内存中是以二进制补码形式存放的。int i;i=10;000000000000101010(a) 数据存放示意图(b) 数据在内存中的实际存放情况-10100000000000101011111111111101011111111111110110-10的原码按位取反加1如汽扣钵避脖掩尚凑许属陆刺哉谦姬端
13、挞摩入躁祝池踊涯慑圾咒桓吟诵明第二章C语言基础第二章C语言基础第15页,共49页。2、整型变量的定义形式:类型标识符变量列表;注意:对变量的定义,一般放在函数开头的声明部分。2.3 基本数据类型int a,b;unsigned int i,j; long e,f;3、整型数据的溢出main( ) short a,b; a=32767; b=a+1; printf(%d,%d, %u,%u ,a,b,a,b);0111111111111111a:b:100000000000000032767,-32768, 32767,32768娠铀语辉囱遥阎联鹏傅初涨钱糯行垣麦奉碧邑调部围炳俐尧拾捂油渔花挖第
14、二章C语言基础第二章C语言基础第16页,共49页。三、整型常量 即整常数。2.3 基本数据类型1、整数值在-32768+32767范围内,认为是short型。2、若超过了上述范围,而在-2147483648+2147483647范围内,则认为是longh或int型。3、在一个整常量后面加一个字母l或L,则认为是long int型常量。4、在一个整常量后面加一个字母u或U,则认为是unsigned类型。1)十进制整数:如123、0、-456等。2)八进制整数:以0开头。如0123=(123)8=(83)10。3)十六进制整数:以0 x(0X)开头。如0 x123= (123)16 =(291)1
15、0、 0 x54=(84)10 。健芭榆抓闸域陨秆戚痛弥戏摹坦羔橙鸡拴窍砍孔瞎报旭崩渐魏凌歌芋藻迅第二章C语言基础第二章C语言基础第17页,共49页。1、实型数据标识符及其变量定义实型变量分为单精度型(float)和双精度型(double)。类型长度有效数字正数数值范围float32673.4e-383.4e38double6415161.7e-3081.7e308对每一个实型变量都应该在使用前加以定义。如: float x,y; double z;2.3 基本数据类型2.3.2 实型数据拱陡奋愿突搂骨千职寒逊电忍忘叹嘶笑坠句镍迫级酿缮瞻穴铱浴叭射御派第二章C语言基础第二章C语言基础第18页,
16、共49页。2.3.2 实型数据2、实型常量:即实数,又称浮点数。有两种表示形式: 2.3 基本数据类型 1)十进制小数形式。一般由数字和小数点组成(必须有小数点,但小数点前后的0可以省略)。例如:0.246 .246 246.0 246. 0.0 等都是正确的小数表示形式。 2)十进制指数形式。由尾数、字母E或e及指数部分组成。具体格式如下所示: 尾数e(E)指数部分例:135e3 124e-2 -12.12e-5 .135E4 0e0 注意:字母e(E)之前必须有数字,且e(或E)后面的指数必须为整数。如e3、 .e3 、2.1e3.5、e等都不是合法的指数形式。酝岂瞳乍河氧涎啡蛤蛤饯嗓萨翌
17、刃贿鸵街您带阑戏猎肘仆衰凝泽延轨公骆第二章C语言基础第二章C语言基础第19页,共49页。一、字符变量 字符变量用来存放字符,且只能存放一个字符,占用一个字节(-128+127)的内存空间。类型标识符为char。 定义方法: char c1,c2; /* 定义了两个字符型变量c1、c2 */字符变量的赋值方法: c1=a; 2.3 基本数据类型2.3.3 字符型数据宛语簧烂剁悼辙舔兰删蚤显见默姑砧音坷绎坟摄孝麦蜗坎齐瘪厅绷爬越惦第二章C语言基础第二章C语言基础第20页,共49页。2.3.3 字符型数据二、字符型常量:C语言的字符型常量有两种形式: 1、普通字符:用一对单引号(即撇号)括起来的单个
18、字符。例如: b、Y、9、(、y。 2、用一对单引号(即撇号)括起来的以一个“”开头的转义字符,形如n,t等,意思是将反斜杠()后面的字符转变成另外的意义。如 n 不代表字母n而作为“换行”符。像“换行”这种非显示字符难以用一般形式的字符表示,所以C语言规定用“转义字符”这种特殊形式表示。 常见转义字符如下表所示。2.3 基本数据类型链县咳赣逆继床搏寺萄饺梧肄者均瞧蒙创潍投唇愁堑浊与乾蓉息莲嚏迷墩第二章C语言基础第二章C语言基础第21页,共49页。转义字符含义ASCII值0表示字符串结束0n换行,将当前位置移到下一行开头10t水平制表(跳到下一个Tab的位置)9v竖向跳格11b左退一格,将当前
19、位置移到前一列8r回车,将当前位置移到本行开头13f换页,将当前位置移到下页开头12a响铃7单引号39双引号34反斜杠“”92ddd1到3位八进制数代表的字符(ASCII码)xhh1到2位十六进制所代表的字符(ASCII码)2.3 基本数据类型潜翰谰烁煽乔睁归薪霸沦牢谍胡踌壁域衫撬拜仑劣拖搏夫迂轧筑伍笔茬讹第二章C语言基础第二章C语言基础第22页,共49页。例. 字符型常量的输出main() printf(Hello!thow are you?nIm fine!n); printf(This is a cupbbbpen.n); printf(A,101); 2.3 基本数据类型Hello!
20、how are you?Im fine!This is a pen.A,A恩邹瞅街任坤晋侈市献舅萧嫂线傀驼笛蔬辜荆粒沫疯饰哀滁呜搞氮猖翅钝第二章C语言基础第二章C语言基础第23页,共49页。三、字符在内存中的存储形式及使用方法 1、将一个字符常量存放到一个字符变量中,实际是将该字符对应的ASCII码存放到存储单元中。 char c1,c2; c1=A;c2=n; 2、字符和整型数据可以相互赋值。 3、字符数据可以字符形式输出,也可以整数形式输出。 2.3 基本数据类型c2c10100000100001010main( ) char c1; c1=65; printf(%c,%dn,c1,c1)
21、; A,65忻娄好渍处蚀针橙罚挺席威啡灰简肆扦藩棱梗俘她沸肮邯刁屁综赏语程环第二章C语言基础第二章C语言基础第24页,共49页。main( ) char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(%c,%cn,c1,c2); 4、语言允许字符数据与整数直接进行算术运算。 2.3 基本数据类型【例】编写程序实现英文字符的大小写转换。 A,B思考:将一个超过一个字节表示范围的数赋给char型,会出现什么情况? 稽魔霍访寄丑遏洼辕蔚允缩攒穷乐卿临归坐丫擞挥渊羊迸孽柞振慧遁悸真第二章C语言基础第二章C语言基础第25页,共49页。2.3.4 字符串常量2
22、.3 基本数据类型 字符串常量是由一对双引号(“”)括起来的字符序列。如“How are you!”、“China”、“a”、“$123.45”等。 双引号是字符串常量的定界符。如果字符串中有双引号应使用转义字符“”来表示。如要输出字符串It is “good” ,语句应为printf(“It is “good” ”); 字符串的长度为字符序列中字符的个数,不包括两边的双引号。如字符串“How are you!”的长度是12。 不要将字符常量和字符串常量混淆。如a是字符串常量,a是字符常量。说明:若:char c;c=a;c=a;铜础爹屑君椽王火街痕瞩炮枝芥观巍诌胆吵捂慨说制休眩贴薛琉认抱颧叉
23、第二章C语言基础第二章C语言基础第26页,共49页。规定:在每个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。规定以字符0作为字符串结束标志。0的ASCII值为0,是不可显字符,也不作任何操作,即“空操作字符”。aa0aa注意:写字符串时不必加0,它是系统自动加上的。China0China2.3 基本数据类型下林庶束绞拍诞纂袖悉贬臀逝寐巡翱钦握珊甫套圃勒汰删炎砌霜塞院每串第二章C语言基础第二章C语言基础第27页,共49页。2.4 运算符及表达式2.4 运算符及表达式运算符: 规定了对数据的基本操作。表达式:将运算对象(常量、变量、函数等)用运算符连接起来的符合C语言语法
24、规则的式子 如:(a-b)/c*2+a+-15%4 斧掸未苇幸疙附稍贯哟燥鄂富仑碘道锄榜虹逸鹤到眼山研痒恶衙辗椅筒转第二章C语言基础第二章C语言基础第28页,共49页。学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别在一个表达式中如果有多个运算符时,则计算是有先后次序的,这种计算的先后次序称为相应运算符的优先级。 结合方向当一个运算对象两侧运算符的优先级别相同时进行运算(处理)的结合方向称为运算符的结合性。按“从右向左”的顺序运算,称为右结合性;按“从左向右”的顺序运算,称为左结合性。 结果的类型朱异薪坞脱辟炔劈看秦碎鲍虱泄属宏丹按瘤倦晤砒苟铝霓妻薯闯捂掂孟达
25、第二章C语言基础第二章C语言基础第29页,共49页。C语言的运算符2.4 运算符及表达式(1)算术运算符+-*/%(2)赋值运算符=及其扩展赋值运算符(3)自增、自减运算符 +-(4)关系运算符=!=(5)逻辑运算符!&|(6)逗号运算符,(7)位运算符 |&(8)条件运算符? :(9)指针运算符* &(10)求字节数运算符 sizeof(11)强制类型转换运算符 (类型标识符)(12)成员运算符 . (13)下标运算符 (14)其它 如函数调用运算符()眶透魂晃泄绽舔藏杀洼页抖缔裕优渊牵扎优哀噶傣韵狮豆颜晾钩萄窜腋侨第二章C语言基础第二章C语言基础第30页,共49页。C语言的运算符2.4 运
26、算符及表达式(1)算术运算符+-*/%(2)赋值运算符=及其扩展赋值运算符(3)自增、自减运算符 +-(4)关系运算符=!=(5)逻辑运算符!&|(6)逗号运算符,(7)位运算符 |&(8)条件运算符? :(9)指针运算符* &(10)求字节数运算符 sizeof(11)强制类型转换运算符 (类型标识符)(12)成员运算符 . (13)下标运算符 (14)其它 如函数调用运算符()今歪肢谈多裂掣架纂逸怕筛箱鼓号符吴痞吸郸曝篱藻刺赶桑岿誉赶苑铱卒第二章C语言基础第二章C语言基础第31页,共49页。2.4.1 算术运算符1、 基本算术运算符2.4 运算符及表达式运算符名称示例运算功能-取负-a使a
27、的值为负值+加a+b求a与b的和-减a-b求a与b的差*乘a*b求a与b的积/除a/b求a与b的商%取余a%b求a整除以b的余数峦纹烁英屉锄振溅乳蛾桶祈凶压臭范容际咒晰熔假银泵叼瑟冻敖赠谦磊疹第二章C语言基础第二章C语言基础第32页,共49页。说 明2.4 运算符及表达式 乘法运算符是“*”,不能用或号,也不能省略。在数学中5a、5a、5a都是合法的,但在C语言中只能写成5*a。 除法运算符是“/”,不能用号表示。两个整数相除结果为整数,如7/2的结果值为3,舍去小数部分。如果参加运算的两个数中有一个数为实数,则结果是double型,因为所有实数都按double型进行运算。 取余运算符“%”
28、两侧的数据必须为整型数据。结果按下式计算:余数=被除数-除数*商。如7%3的结果为1。 7%1.2则是错误的。吮撩做魂黍孟篆跨瀑笔藏谬酝高掣意拌厚篓症理卉供泡碰伴敖憨耸滦污饲第二章C语言基础第二章C语言基础第33页,共49页。2、算术表达式用算术运算符、圆括号将运算对象连接起来的符合C语法规则的式子就称为算术表达式。如:(a-b)/c*2+a+-15%4 2.4 运算符及表达式 表达式中的乘号不能省略。 表达式中只能使用合法用户标识符。例如:数学式 相应的C语言表达式应写成:3.1415926*r*r。 表达式不允许有分子分母、上下标等形式,必要时要利用圆括号保证运算的顺序。例如: 应写成:(
29、a+b*b)/(c+d)。 表达式不允许使用方括号和花括号,只能使用圆括号帮助限定运算顺序。可以使用多层圆括号,但左右括号必须配对,运算时从内层圆括号开始,由内向外依次计算表达式的值。 锐郊砌臭状冬尹拄盘炊供城绳牛颠毗宋座晴蟹午厨濒柳邹曲你茄削收睛屠第二章C语言基础第二章C语言基础第34页,共49页。3、算术运算符的优先级与结合性2.4 运算符及表达式运算种类结合性优先级( )高低-(负号)左结合性*,/,%+,-右结合性瓣枚右煌桑惫捡晤罩幢躬殊帽丁仁洪呆墒墙微扔逮湖项溯撇难鄂搓豌交掖第二章C语言基础第二章C语言基础第35页,共49页。4、基本类型数据间的混合运算2.4 运算符及表达式(1)在
30、运算过程中,C语言遇到两种不同数据类型的数值运算时,会将某个数做适当的类型转换,然后再进行运算。类型转换总是按照数据长度增加的方向逐个运算符进行,以保证精度不降低。自动类型转换 例如:表达式 5+b-x/2+y*m(假设m为int型,x为float型,y为double型 )doublefloatlongunsignedintchar,short高低注意: 横向箭头表示必定的转换,纵向箭头表示当运算符两侧的数据类型不一致时将它们中低级别的类型转换成高级别的类型. 箭头方向只是级别的高低,并不是转换的过程.喂登箍篙歇沏纵料柯键莹黑湾巾痞世索埂颐敲丽科炙陨径件煮监仔诵着崇第二章C语言基础第二章C语言
31、基础第36页,共49页。2.4 运算符及表达式m为int型,x为float型,y为double型intdoubleresult = 5 + b - x / 2 + y * mdoubledoubledoubledouble身垒分由型步伐七悠幅伪腕乃轮糟欧广桃缸逝屏逾悔息尊枝堂舅灿电淳奴第二章C语言基础第二章C语言基础第37页,共49页。2.4 运算符及表达式(2)当需要将某数据转换成指定类型时使用强制类型转换,通过类型转换运算符实现。一般形式为: (类型标识符) (表达式) 例如: (double)a /* 将a转换成double型 */ (int)(x+y) /* 将x+y的和转换成整型 *
32、/ (float)(10*5) /* 将10*5的积转换成float型 */注意: 类型标识符和表达式都必须加括号(单个变量可以不加括号). (int)(x+y)与(int)x+y 无论是强制转换或是自动转换,只是为了本次运算对数据长度进行的临时性转换,不改变数据定义时的类型。 强制类型转换的优先级高于自动类型转换。 炼宝寥散嘻泣舔驶絮吕袜眷戎翱拴尽眼皱莉左墙埂剂脂仪拴宙拌业买谰竭第二章C语言基础第二章C语言基础第38页,共49页。main( ) int i=1,j=5,k1,k2,k3; float x=5.7,y=2.8,z1,z2,z3; k1=(int)x; k2=(int)(x)/y
33、; k3=(int)(x/y); z1=(float)i; z2=(float)i/j; z3=(float)(i/j); printf(k1=%dn,k1); printf(k2=%dn,k2); printf(k3=%dn,k3); printf(z1=%fn,z1); printf(z2=%fn,z2); printf(z3=%fn,z3); 【例】强制类型转换示例。k1=5k2=1k3=2z1=1.000000z2=0.200000z3=0.0000002.4 运算符及表达式窃胆峪淫右蜕撩霉酋潞炕博鹊掖拉藕种黎隔郭畦飞渍枷痛盒姚壕氓绵草砰第二章C语言基础第二章C语言基础第39页,共49
34、页。#include main() int a,b,c; float s,area,temp; printf(please input 3 sizesn); scanf(%d%d%d,&a,&b,&c); s=(a+b+c)/2; temp=s*(s-a)*(s-b)*(s-c); if (temp=0) printf(your input is wrong); else area=sqrt(temp); printf(The area is %f,area); 【例】分析程序。2.4 运算符及表达式姿埋斟蹭市誊驰尝用贸遥丽极函涝遇干烈堤啤嫡崖捷跪痔镶读渣舱骑脉棘第二章C语言基础第二章C语言基
35、础第40页,共49页。#include main() float a,b,c; float s,area,temp; printf(please input 3 sizesn); scanf(%d%d%d,&a,&b,&c); s=(a+b+c)/2; temp=s*(s-a)*(s-b)*(s-c); if (temp=0) printf(your input is wrong); else area=sqrt(temp); printf(The area is %f,area); 正确程序应为:2.4 运算符及表达式勉求掣找础欢弧失持失瞪对含酷唇毕课仿技循庇妖凹瘫骋裙凉靴钮鳃夜离第二章C语
36、言基础第二章C语言基础第41页,共49页。2.4.2 赋值运算符1、赋值运算符和赋值表达式2.4 运算符及表达式 赋值运算符:= 赋值表达式:用赋值运算符将一个变量和一个表达式连接起来的式子,其功能是将=右边的表达式的值存放到左边的变量中。形式为:变量标识符=表达式 注意:赋值表达式 赋值语句 赋值表达式的值:即被赋值后=左边变量的值。例 b=5 d=5+b-x/2+y*mb=5有两层含义:一是使变量b的值为5,二是求得赋值表达式“b=5”的值为5。a=(b=5);语句执行后a的值为? 猴官庚澄条开倘滑仔菜硕潭蒲弧溺镇崎询便戮商莲蛤侗炳琢藻拢耽扁帅做第二章C语言基础第二章C语言基础第42页,共
37、49页。说明:2.4 运算符及表达式 赋值运算符“=”的左边必须是变量,不能是常量或者表达式。右边的表达式可以是常量、变量、表达式和函数调用。如y=sqrt(2)。 赋值运算符“=”不同于数学中的等号,它没有相等的含义。例如:x=x+1,其含义是取出变量x中的值加1后,再存入变量x。 赋值运算符的结合性为“右结合性”,低优先级。如:x=y=z=8 等价于 x=(y=(z=8)y=a+3 先+后=例 3=x-2*y; a+b=3;(错)墨纫华韭诬浓第忧词头眼幕澜改钝句延吏桔宛义元缀歼诲债百拄强待札翻第二章C语言基础第二章C语言基础第43页,共49页。2、赋值运算中的类型转换2.4 运算符及表达式
38、 规则:当“=”左边变量的类型和右边表达式值的类型不一致时,要将右边表达式值类型强制转换为左边变量的类型。 左边变量类型右边表达式值的类型转换说明intdouble将实型数据的小数部分截去后再赋值doubleint将整型数据转换成实型数据后再赋值intchar值不变,高24位补0,或进行符号扩展Long,intshort值不变,高16位进行符号扩展shortLong,int截取低16位数值unsignedsigned原样赋值,如果超出表示范围则会有意外结果signedunsigned侦参饯良屉救讥泅适恰臀朋胶箩瞒还虚挝平塌锣谨谤叮盏尺鸵舅槐郸晴鸯第二章C语言基础第二章C语言基础第44页,共49页。3、复合赋值运算符2.4 运算符及表达式a+=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年厨具套项目规划申请报告模范
- 2024年健康医疗器械项目立项申请报告模范
- 2024年版压路机驾驶员劳动合同3篇
- 2024年标准化办公空间租赁合同模板版B版
- 2024年版太阳能发电项目投资建设合同
- 2024年信贷服务全权委托合同2篇
- 2024年施工项目合作合同精简版版B版
- 精致茶叶购销合同范本(2篇)
- 三年级英语教学计划模板
- 体育教研工作计划模板汇编
- 新教材北师大版数学一年级上册教学反思全册
- 驾驶员安全驾驶知识培训与评估
- 食品安全事故流行病学调查表格
- 住宅排气管道系统工程技术标准
- 标识标牌售后服务方案
- 人教版高中地理必修一全册测试题(16份含答案)
- 基于单片机数字秒表的设计
- 基于LabVIEW的温湿度监测系统
- 人保《理赔工作聘请保险公估机构管理办法》实施细则
- GB/T 40636-2021挂面
- GB 18383-2007絮用纤维制品通用技术要求
评论
0/150
提交评论