char* p
在常量区分配了内存存储,栈上分配一地址给指针p并指向常量
char array[]
array 表示的是一个char类型的数组指针,该指针所指向的数组内容是保存在栈上面的,是可以修改的
#include <iostream>
#include <sstream>
using std::string;
using std::stringstream;
char* reverse_string(char *s, int size)
{
char *p = s;
for (int i = 0; i < size; i++)
p++;
if (p != s)
{
for (char *q = s; q < p--; q++)
{
char c = *q;
*q = *p;
*p = c;
}
}
return s;
}
int main()
{
char *p1 = "abcd";
char p2[] = "1234";
// reverse_string(p1, strlen(p1)); // 报错
// std::cout << p1;
reverse_string(p2, strlen(p2));
std::cout << p2;
return 0;
}