char c1[] = "hello";// char *c2 = "hello";//
区别1:
c1是一个局部数组,c2是一个全局数组。
局部数组c1是局部变量,他对应的是内存中的栈;
"hello"为字符串常量,放在只读的数据区域(区别普通的全局变量保存在静态数据区,静态数据区区域能改变变量值),
所以c2指向全局区域内存。
区别2:
c1的值可以改变;*c1 = 'x';//ok
c2的值不能变;*c2 = 'x';//error
区别3:
c1只是"hello"的一个拷贝,保存在栈中;
c2指向的只读数据区域的指针,不是拷贝。