C++中指针是天使更是魔鬼,特别对于初学者来说,它浪费了无数程序员无数的时间,前赴后继。
使用指针很容易出错,常见的问题有内存越界,野指针等等。而且出错后问题很难查,有时候程序出错后,不会马上崩溃,而是过了很久;程序崩溃的地方通常也不是代码出错的地方;或者程序运行很久后偶尔出现一次bug;等等。
可惜的是,C++的教科书上一般不会强调指针的危害,导致了很多程序员使用指针泛滥,而当你工作久了之后就会切身的体会到问题的严重性,这通常是由于无数次的彻夜调试。
指针使用方便,但是它带来的问题和它带来的好处一样多。再有经验再细心的程序员,也无法保证使用指针完全没有bug,使用指针常常意味着整天担心程序会出错。
我们可以不使用指针,指针有很多的替代品,相比指针非常安全,比如智能指针(不会有野指针的问题),vector(数组越界的问题就少多了),string等等,只有在不得不用指针的时候才使用。
这就是我对C++指针的一点点批判。
| |
|