从c到c++的升级

1.声明定义
C++可以在需要使用时再定义

2.register关键字的升级
·C++中可以取得register变量的地址

3.const关键字
·const修饰的变量不可变,也不可通过空间修改,即常量看待。当碰见常量声明时在符号表中放入常量

4.内存分配与释放(new/delete)

变量申请
Type * pointer = new Type;
//——-
delete pointer;
数组申请
Type *ptr = new Type[100];
//————-
delete[] ptr;

·new与malloc的区别:

A.new是C++的一部分,malloc由C库tigong
B.New以具体类型为单位进行内存分配,malloc智能以字节为单位进行内存分配
C.New在申请变量时可以进行初始化,malloc不具备内存初始化的特性
初始化:int *ptr = new int(5);
*p=5;
二维数组的定义:int (*pp)[6]=new int[6][6];
三维数组的定义:int (*ppp)[6][6]=new int[6][6][6];

5.引用 VS 指针
1)引用:引用是给一个变量起别名,例如:int a=1;int &b = a;//b是a的别名,因此a,b是同一个单元
a.定义引用时一定要注意初始化,指明该引用变量是谁的别名
b.在实际应用中,引用一般用作参数传递与返回值
2)Const引用:const的引用必须指向const

const int a=1;
const int &b=a;//true;
int &c = a;//error

3)函数传参:按引用传递

void add(int &num)
{
    //--------------
}
int main()
{
    int num=1;
    add(num);
}

4)函数返回值:引用作为函数返回值
不能返回对局部变量的引用
5)引用与指针的区别

引用访问一个变量是直接访问,而指针是间接访问
引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间
引用一经初始化不能再引用其他变量,而指针可以。
尽可能使用引用,不得已使用指针

6.函数升级
1)内联函数(inline)
A.内联函数调用时,要求实参和形参的类型一致,另外内联函数会对实参表达式进行求值,然后传递给形参;而宏调用只用实参简单的替换形参
B.内联函数是在编译的时候,在调用的地方将代码展开的,而宏则是在预处理时进行替换的
C.在C++中建议采用inline函数来替换带参数的宏
2)函数重载
相同的作用域,如果两个函数名称相同,而参数不同,我们把它们称为重载overload
函数重载的不同形式:

·形参数量不同
·形参类型不同
·形参的顺序不同
·形参数量和形参类型都不同

3)带默认参数的函数
函数没有声明时,声明时指定后,定义就不能再指定默认值
默认值的定义必须遵守从右到左的顺序,如果某个形参没有默认值,则他左边的参数就不能有默认值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值