最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

第三章

运维笔记admin20浏览0评论

第三章

第三章

目录

math.h ​

强制类型转换

逗号运算符的功能

为什么需要常量?如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?

如何合理使用常量?

const 与#define 的对比?前者比后者有更多的优点:

常量定义规则:

提高效率:对乘方运算和乘法运算的改造

巧用异或运算法则(转换为二进制做异或(同0异1))实现两数值交换

表达式与赋值中的自动类型转换规则

浮点数不能做求余运算

对负数求余数


math.h  强制类型转换 注意:只是将表达式的值的类型强制转换为指定类型,变量本身的类型和值都不改变逗号运算符的功能 是把两个表达式的连接起来组成一个表达式。一般形式为:表达式1,表达式2求值的过程是分别求两个表达式的值,并用表达式 2 的值作为整个逗号表达式的值(这个功能通常是不用的)。 k=(x,y);返回k=y;可把多个表达式连接在一起,构成逗号表达式,其作用是实现对各个表达式的顺序求值,因此 逗号运算符也称为顺序求值运算符。为什么需要常量?如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦? 程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。在程序的很多地方输入同样的数字或字符串,难保不发生书写错误。如果要修改数字或字符串,则会在很多地方改动,既麻烦又容易出错。如何合理使用常量? 尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串。C++ 语言可以用 const 来定义常量,也可以用 #define 来定义常量。const 与#define 的对比?前者比后者有更多的优点: const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。有些集成化的调试工具可以对 const 常量进行调试,但是不能对宏常量进行调试。在C++ 程序中只使用const 常量而不使用宏常量,即 const 常量完全取代宏常量。常量定义规则: 需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。提高效率:对乘方运算和乘法运算的改造

当y=nx和 y=x^n中n较小时,把乘法变加法,把乘方变乘法。 

巧用异或运算法则(转换为二进制做异或(同0异1))实现两数值交换

a     01              11               11

b     10              10               01

a^b 11 a=3        01 b=1       10 a=2

表达式与赋值中的自动类型转换规则

一个赋值语句中,若赋值运算符左侧(目标侧)变量的类型和右侧表达式的类型不一致,则赋值时将发生 自动类型转换。自动类型转换的规则是:将右侧表达式的值转换成左侧变量的类型。(以左侧为准,自动转换)一般而言,将取值范围小的类型转换为取值范围大的类型相对来说是安全的,而反之则是不安全的,好的编译器会发出警告。

纵向箭头表示必然的转换,即将所有的char和short都提升为int,所有的float都提升为double(自动类型转换:所有的char和short都提升为int,所有的float都提升为double)完成以上转换以后其他类型转换将根据参与运算的操作数类型按由低向高的方向转换(其余则是由低到高自动类型转换)图中横向箭头表示不同类型数据混合运算时由低向高的类型转换方向,但不代表转换的中间过程。浮点数不能做求余运算 对负数求余数

第三章

发布评论

评论列表(0)

  1. 暂无评论