直接看例子
#include <iostream>
#include <string>
using namespace std;
int main()
{
char* a = "12345";
char b[] = "12345";
cout << a << endl; //输出12345
cout << b << endl; //输出12345
cout << sizeof(a) << endl; //4,a是一个指针,大小为4
cout << sizeof(b) << endl; //6,输出字符串b的长度,末尾有一个'\0'
//a[0] = '1'; //运行时报错,因为a指向的内容是常量
b[0] = '2'; //修改成功
a = b;
a[0] = '1'; //修改成功,因为a现在指向的是b,是一个字符串数组,不是常量
cout << (void*)a << endl; //输出a,a为char指针,本质上是个地址,
//但是输出char指针会输出其指向的字符串,所以要抓换成其他类型的指针
cout << (void*)b << endl; //同上
cout << &(a[1]) << endl; //输出2345,以为对a[1]取地址之后,本质上又变成了一个char*
cout << &(b[1]) << endl; //同上
cout <<