1、C++与C的区别
(1)动态分配内存
C语言:
a. malloc函数:在内存的动态存储区中分配一个长度为size的连续空间;
void *malloc(unsigned int size);
b. calloc函数:在内存的动态存储区中分配n个长度为size的连续空间;
void *calloc(unsigned n, unsigned size);
c. free函数:释放由p所指向的内存区
void free(void *p);
d. void指针类型:在将它的值赋给另一指针变量时要进行要进行强制类型转换使之适合于被赋值的变量的类型
e. realloc函数
C++语言:
a. new:只需指定其数据类型,与在函数内定义的变量的初始化方式相同
动态创建对象:int *pi=new int;
动态创建数组:int *pia=new int[10];
b. delete:对于动态创建的对象或数组,必须要显示释放;
释放对象:delete pi;
释放数组:delete [] pia;
c. 在delete之后,重设指针的值;
delete命令释放了指针所指向对象所占用的内存空间;
在删除指针后,该指针变成悬垂指针;
一旦删除了指针所指向的对象,立即将指针置为0;
d. 用new创建多维数组
1)new 类型名T[下标表达式1][下标表达式2]……;
2)如果内存申请成功,new运算返回一个指向新分配内存的首地址的指针,但不是T类型指针,而是一个指向T类型数组的指针,数组
元素的个数为除最左边一维外各维下标表达式的乘积。
(2) 输入与输出
1)C语言: printf, scanf