区别:数组形字符串存放在全局数据区或栈区,可读可写。指针字符串存放在常量区,只读不能写。
char str[] = “max666”;
char * pstr = str;
上面是定义了一个字符串数组及一个指向这个字符串数组的指针,可以通过这个指针对数组中的内容进行操作;
例如:*(pstr + i) = ‘a’;
但是下面的情况不可以直接对数组进行操作:
char *str = “1234567asdf”;
这种情况下,指针指向的内容是一个字符串常量,常量是不允许被修改的,所以不可以通过这个指针对字符串进行修改的操作;
即 : *(str + i) = ‘a’; 是非法的;