c++函数重载:
c语言的定义都需要放在最上面,c++不需要
c语言不支持函数的重载
重载函数的定义:
在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。
C++运算符重载的相关规定如下:
①不能改变运算符的优先级;
②不能改变运算符的结合型;
③默认参数不能和重载的运算符一起使用;
④不能改变运算符的操作数的个数;
⑤不能创建新的运算符,只有已有运算符可以被重载;
⑥运算符作用于C++内部提供的数据类型时,原来含义保持不变。
全局变量:定义在函数外面的变量
①生命周期:从程序运行开始创建,程序结束开始销毁
②作用域:从定义文件开始,到文件结束都可以用
③默认值:0
④链接属性:static静态全量
如果加了static,链接属性就是内部,不加就是外部
intg_a; //全局变量
externintg_b; //g_b在其他文件有定义
static int g_c=200; //只能在内部(本文件)中使用
⑤存储区域:全局变量区
局部变量:定义在函数内部的函数,包括形参
①生命周期:进入函数时创建,函数退出销毁
②作用域:只能在本函数有效
③默认值:随机值
④链接属性:无
⑤存储区域:栈里面
static局部变量:
①生命周期:第一次进入函数时创建,程序退出时才销毁
②作用域:函数内部
③默认值:0
④链接属性:无
⑤存储区域:静态存储区域
void Fun()
{
inta=0;
a++;
printf(“%d
”,a);
}
输出的a为:111 1 1 1 1 1 1 1
每次用完之后a的值又会重新初始化为0
void Fun()
{
staticinta=0;
a++;
printf(“%d
”,a);
}
输出的a为:123 4 5 6 7 8 9 10
因为加了static,因此每次用完之后会保留a的值,并不会再初始化为0
stack栈:放局部变量的
堆栈一般指的是栈
特点:只管用,不管回收,内存是操作系统管理
缺点:很小,只有1M
heap堆:自己申请内存,自己释放内存,是动态内存,自己管理