1.void型指针
void本身是一种数据类型,通常表示无值,不能声明void类型的变量,但是可以声明void类型的指针,
void*类型的指针表示不确定的类型,是一种通用型的指针,也就是说任何类型的指针都可以付给void类型的指针变量
例如:int p;
char a;
void* x;
x=&p;
x=&a;
同时,在进行输出的时候,void*类型必须进行强制类型转换
2.内联函数
inline double circle(double r)
1.使用内联函数是为了消除#define的不安全性
2.使用内联函数需要注意的几点
1.调用前必须有完整的定义(声明必须完整,若无声明,定义必须在前面,否则编译器将无法知道应该插入什么代码)
2.内联函数以时间换空间,因此尽量避免使用复杂语句(for ,switch while等等),且代码不要过长
3.带默认参数的函数
void Init(int x,int y=5);
带默认值的必须在无默认值的后面
对应的,在传递实参时
Init(3)
而不能出现func(,20)
4.函数重载:函数参数类型不同或函数参数个数不同,或者两者都有
注意!!!
1.如果两个函数除了函数返回类型其他的都相同,那么他们不算重载,这样写是错误的
在调用时无法区分应该调用哪一个函数
double mul(int x,int y)
int mul(int x,int y)
2.函数重载与代拟任职的参数一起使用,可能会有二义性
5.作用域标识符::
用于在局部作用域中使用被自动隐藏的同名全局变量
6.强制类型转换
(double)x;
7.new 和delete
p=new int
8.引用
暂时不想写了,特么的,好烦