#include <iostream>
using namespace std;
int main()
{
char *a1 = "abc";
char *a2 = "abc";
const char *a3 = "abc";
const char *a4 = "abc"; // "abc" 被存储在静态数据区,是全局的 a1,a2,a3,a4仅仅只是一个指针,指向这个区域
//因为"abc"是常量,所以不能有a1[0]='s' 这样的修改,一般写成const char *a4 = "abc";会好一点,
//这样有修改的尝试时 编译器会报错
char b1[] = "abc";
char b2[] = "abc";
const char b3[] = "abc";
const char b4[] = "abc"; //以 char b[]="adf" 这个"abf"地址是分配在栈上 而不是常量
//const char b4[] = "abc"; const只是用来修饰这个变量是不可 以修改的 而不是说这是一个常量
printf("%d %d %s\n", &a1, a1, a1);
printf("%d %d %s\n", &a2, a2, a2);
printf("%d %d %s\n", &a3, a3, a3);
printf("%d %d %s\n", &a4, a4, a4);
printf("%d %d %s\n", &b1, b1, b1);
printf("%d %d %s\n", &b2, b2, b2);
printf("%d %d %s\n", &b3, b3, b3);
printf("%d %d %s\n", &b4, b4, b4);
}