字符指针和字符串效率的研究:
我定义一个字符指针
char *pCH;
我在定义个字符数组
char a[20];
我都让它们初始化
char *pCH = "ni hao zhong guo!";
char a[] = "ni hao zhong guo!";
我当时在想它们的效率到底哪个高?为什么呢?原因如下
1 对于任何一个指针,它是4个字节,而数组要看你数组的长度
2 对于数组而言要检查你有没有越界,指针不要
3 对于字符串,它是常量被保存在内存当中,对于pch而言,字符串只返回字符串的首地址,pch就指向了改字符串的首地址
对于字符数组,它要把每个值都拷贝到字符数组当中,你想你要是有10000个长度的字符,那你就要拷贝10000次,那效率就肯定下降了
4 当系统要收回内存时,指针就相当于一个普通的变量,而数组要进行特殊的处理
注意:对于字符指针,不要调用delete来释放指针所指向的空间(字符串常量),因为字符串常量 不能使用delete来释放,一定要记住,在我们调用new之后,才调用delete。
请使用指针吧!虽然,指针没有数组特别安全,不过它的效率比数组高很多啊!!!
这是我自己总结的,希望大家能够给点意见,谢谢!