以下四行代码的区别是什么?
const char * arr = "123";
char * brr = "123";
const char crr[] = "123";
char drr[] = "123";
参考回答:
const char * arr = "123";//字符串123保存在常量区,const本来是修饰arr指向的值不能通过arr去修改,但是字符串“123”在常量区,本来就不能改变,所以加不加const效果都一样
char * brr = "123";
//字符串123保存在常量区,这个arr指针指向的是同一个位置,同样不能通过brr去修改"123"的值
const char crr[] = "123";
//这里123本来是在栈上的,但是编译器可能会做某些优化,将其放到常量区
char drr[] = "123";
//字符串123保存在栈区,可以通过drr去修改