1.指针和引用的区别
1指针一般指的是某块内存的地址,通过这个地址,我们可以寻址到这块内存;而引用是一个变量的别名,
2指针可以为空,即不指向任何东西;但是引用不能为空。
3指针可以多次赋值,引用只能在初始化的时候就赋好值,之后就不能改变了。
4引用的创建和销毁不会调用类的拷贝构造函数和析构函数。
2.new和malloc
1、new 是c++中的操作符,malloc是c 中的一个函数
2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始 化类成员的工作,同样free也不会调用析构函数
3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。
4、new 和 malloc效率比较:new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的 都是void指针。
3.int *const p,const int *p和int const *p的区别
const int *p; // const修饰的是*p,因此*p是常量不能改变,但可以改变p的指向;
int const* p; // 同上,主要是看const与*的前后关系;
int* const p; // const修饰的是p,因此p的指向是常量不能改变,但*p可以改变;
const int const *p; // 两个const既修饰了*p也修饰了p,因此*p与p都是常量不能改变;
4.C++程序中main(int argc, char *argv[])函数的参数意义
两个参数中第一个参数argc表示在Dos命令行中的输入的程序名和参数个数之和,第二个参数中argv[0]记录的程序名,后面的argv[i]记录的输入参数。另外argc argv是标识符,可以修改名称。