1 指针
注意指针一定要有指向才能操作,不然出错.
char *p;
cin>>p;这样会出错;没有地方存
char *p=“nihao”;
p[1]='1';//这样会出错,p指向常量存储区,不能利用p修改
数组要么建立在静态存储器(全局),要么在栈,数组名对应着一块内存,其地址与容量在生命期不变,只有内容可变
指针可随时指向任意类型的内存块,比数组灵活。
2 运算和形参
指针相减,加/减常数
sizeof(T*)=4
注意不能返回建立在函数内部栈上的指针。
3 注意指针不初始化或者释放后,这时候指针的指向是随机的,要不用时设为NULL
delete free只是内存释放,指针还存在,变成野指针!!!
4浅拷贝和深拷贝
包括类中指针
浅拷贝:是指2个指向指向同一个内存,任意一个修改都会改变其结果。这样同一个内存可能释放、析够了2次,二另一个之前对应的内存没释放
深拷贝:2个指向不同的内存,拷贝的是内存中的结果。
因此当类中存在指针成员,要重写拷贝构造函数,赋值函数。不然操作指针会出错。