- 1、本文档共86页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.2.4 符号常量 前面介绍的常量都是直接常量,从字面上即可直接看出它们的值是什么,因此又称“字面常量”。符号常量则是在一个程序(或程序的一部分)中指定的用名字代表的常量,从字面上不能直接看出其类型和值。 例2.7 求圆面积和周长的两个程序。 程序1: /****** 文件名:ex020701.c ******/ /****** 计算圆的周长和面积 ******/ #include stdio.h double calcuArea (double r); double calcuCircumference (double r); 精品 2.2.4 符号常量 int main(void) { printf (″area=%f″, calcuArea (2.0)); printf (″\tcircumference=% f\n″, calcuCircum (2.0)); return 0; } double calcuArea(double r) /* 计算圆面积 */ { return (3.141592654* r* r); } double calcuCircum(double r) /* 计算圆周长 */ { return (2.0* 3.141592654* r): } 运行结果为: area = 12.566371 circumference = 12.566371 精品 程序2: /****** 文件名:ex020702.c ******/ /****** 计算圆的周长和面积 ******/ #include stdio.h #define PI 3.141592654 /*定义符号常数*/ #define R 2.0 double calcuArea(double r),; double calcuCircum(double r); int main(void) { printf (″area=%f″, area (R)); printf (″\tcircumference=%f\n″, circumference (R)); return 0; } double calcuArea(double r) { return (PI* r* r) } double calcuCircum(double r) { return (2.0* PI* r); } 精品 程序2的运行结果与程序1完全相同。程序2中PI代替3.141592654,用R代替20,使程序更容易理解,可读性好,而且当需要修改R的值时只需要改一处即可,方便又不易出错。定义符号常量的一种方法是使用#define命令,它是一种“预编译命令”,在编译整个程序之前系统会先对程序中的预编译命令进行处理。上面#define命令的作用是在预编译时将程序中凡出现PI的地方全部以3.141592654代替,凡出现R的地方一律以2.0代替。 精品 2.3 数据类型转换 在下列情况下,C语言编译器,可能将数据从一种类型转换成另一种类型: (1)显式转换:使用转换表达式。 (2)隐式转换,包括: 当二元运算符两端的操作数类型不同时进行的转换; 函数参数传递中的数据类型转换; 函数返回时的数据类型转换; 其他情形。 精品 2.3.1 几个概念 数据类型的提升与降格 提升可以分为如下3类情况: (1)类型提升:由整数转换为浮点数。 (2)整数提升:由短整数类型转换为长整数类型。 (3)同一长度的整数有符号与不有符号的,属于同一级别。 精品 2. 符号位变为数据的最高位和最高位变成符号位 例2.8 分析下面程序的执行结果。 /* 文件名:ex020801.c */ #include stdio.h int main(void) { unsigned short us1 = 32767, us2 = 65535, us; signed short ss = -7; us = ss; printf((1)ss = %d, us = %d\n,ss,us); ss = us1; printf((2)us1 = %d, ss = %d\n,us1,ss); ss = us2; printf((3)us2 = %d, ss = %d\n,us2,ss); return 0; } 精品 程序执行结果如下: (1)ss = -7, us = 65529 (2)us1 = 32767, ss = 32767 (3)us2 = 65535, ss = -1 精品 不同类型的变量之间通过赋值操作,使右值类型转换为左值类型。下面分2种情形讨论。 (1)第1种情形是
您可能关注的文档
最近下载
- 2024华医网继续教育糖尿病及其并发症诊疗新进展题库答案.docx VIP
- 小红书种草学2024母婴食品行业-成长有营养种草促增长.pdf
- SMTC 3 800 006 电子电器零件系统电磁兼容测试规范General test specification of electromagnetic compatibility for electrical-electronic components and subsystems(20200929).pdf
- 2021年传染病防治知识试题及答案.pdf
- 2024执业药师继续教育甲状腺疾病的药物治疗参考答案.docx
- 上市新药达洛鲁胺(Darolutamide)合成检索总结报告.pdf VIP
- 高等数学教学教案.doc VIP
- 国开本科《理工英语3》机考题库及答案.docx
- 定比点差法专题(学生版).pdf
- [运维]-数据中心机房基础设施运维管理规范.docx VIP
文档评论(0)