先看以前写的一段程序:
其主要功能是实现字符串的原地转换:
开始不知道拿错了,后来发现可能是函数中对指针操作有误:
C++/C 程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以
为两者是等价的。
数组要么在静态存储区被创建 (如全局数组) , 要么在栈上被创建。 数组名对应着 (而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
指针可以随时指向任意类型的内存块,它的特征是“可变” ,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。
这里摘录《高质量C++/C编程》说明: