关于new和malloc的区别:
1.new关键字是c++的一部分,malloc是由C的库函数提供
2.new的分配的单位是以数据类型的字节数,而malloc 的单位是由单个的字节数
3.new的在空间分配后可以进行初始化(尽量一个初始化,多个不建议),但是malloc分配后不能直接的初始化;
关于指针和引用的区别:
1.引用访问一个变量的时候是直接的访问,而指针的访问时间接的访问
2.引用不需要空间的分配,而指针需要空间的分配指针的空间
3.引用的定义的时候就需要初始化,且只能对应一个;不能再引用其他的;
使用一个new,进行分配一个二维,三维数组的空间:
char (* pp)[2] = new char[2][2];
char (*ppp)[2][2][2] = new char [2][2][2];
宏函数和内联函数:
宏函数在预处理的时候就进行了替换;
在执行的时候减少了进行参数的分配参数空间的;
用编译的时间换取空间
内联函数,是将函数整个代码的替换,减少了函数的调用的和返回的时间;
关键字的register:
原本C语言的register主要是讲频繁使用的变量申请寄存器,减少对cpu的访问的时间和次数;
被register关键字的修饰的变量注意点:
1.register无法修饰全局的变量
2.被register修饰的变量无法取地址(&);
3.被修饰的变量需要时cpu能够接受的变量;
在c++里面,进行优化以后是可以进行去地址的;