C++最大的改变就是在C中引入了面向对象程序设计的语言机制。
1、在C语言中,结构和联合中的函数是不允许的,且必须在相关变量的定义前面加上对应的关键字(struct student s1;)。
2、C中局部变量应该在函数的可执行语句之前定义,另外C++允许在for循环中定义变量。
一、指针
用于存放一个对象在内存中的地址,通过指针能够间接的操作这个对象。典型用法建立链接的数据结构(链表、树),并管理程序运行过程中动态分配的对象,或用于函数参数来传递数组和类对象。
指针与堆空间的分配有关,堆内存又称动态内存。C中可用malloc()和free()从堆中分配指定的存储区域。而C++提供了new和delete两个运算符进行堆内存的分配与释放。new的优势在于:1、可以自动计算要分配的内存大小,2、并且不需要进行类型转换 3、new可以对分配的内存进行初始化 4、new和delete可以被重载
区别:int *p = (int *)malloc(sizeof(int)); int *p = new int; new可以根据type自动计算分配的内存大小,无需使用sizeof()。
free(p); delete p;
二、引用
C++新引进功能:是某个对象的别名。注意:在变量声明时出现的&为引用运算符,其他都为地址操作符。
与指针的区别在于:指针是一个变量,可以对它重新赋值,让它指向另外的地址;但引用必须在定义时进行初始化,并且一经定义就再也不能作为其他变量的引用了。