Math类中提供了三个与取整有关的方法:ceil,floor,round;
1.floor为向下取整;
2.cell为向上取整;
3.round为四舍五入;
类中成员不显示定义属性时,默认为私有,这是和结构体唯一区别所在;
运算对象为数字的补码,而不是二进制码。当补码的符号位为1时,说明该补码对应的是负数;
正整数的补码是其二进制表示,与原码相同;
求负整数的补码,将其对应正数二进制表示所有位取反后加1;
已知一个数的补码,求原码的操作其实就是对该补码再求补码;
相互依赖的问题可以用采用前置声明解决;
static用法
1.用在全局变量,可以对其他源文件隐藏变量,只初始化一次;
2.用在局部变量,只初始化一次;
3.用在函数前,加了static的函数只在内存中有一份,不加的函数每次调用都会维持一个拷贝,只在声明的源文件可见
4.用在数据成员,只分配一次内存,可供所有对象访问;
1.floor为向下取整;
2.cell为向上取整;
3.round为四舍五入;
类中成员不显示定义属性时,默认为私有,这是和结构体唯一区别所在;
运算对象为数字的补码,而不是二进制码。当补码的符号位为1时,说明该补码对应的是负数;
正整数的补码是其二进制表示,与原码相同;
求负整数的补码,将其对应正数二进制表示所有位取反后加1;
已知一个数的补码,求原码的操作其实就是对该补码再求补码;
相互依赖的问题可以用采用前置声明解决;
static用法
1.用在全局变量,可以对其他源文件隐藏变量,只初始化一次;
2.用在局部变量,只初始化一次;
3.用在函数前,加了static的函数只在内存中有一份,不加的函数每次调用都会维持一个拷贝,只在声明的源文件可见
4.用在数据成员,只分配一次内存,可供所有对象访问;
5.用在成员函数,只分配一次内存,可供所有对象访问,没有this指针;
const用法
1.常量,定义的是符号常量,放在符号表中
2.指针
1)指向常量的指针 const int *p,不能通过指针修改常量,指针可以修改指向新常量;
2)常指针 char*const p='a',指针的值,指向地址为常,量不可修改;
3)指向常量的常指针const char *const p='a'
3.函数参数与返回值
4.类的常量与成员函数