char *指针与char []数组的区别

char *str = "hello";
char arr[] = "hello";

以上定义中str和arr差别很大,str是一个初值指向"hello"字符串常量的指针,这个指针可以指向其他地址,但是不能通过指针修改字符串的值。访问后会出现egmentation fault (core dumped)错误。

arr是一个刚好容纳"hello"和’\0’的数组,可以通过数组的首地址来访问和修改数组元素。

你可能感兴趣的:(C程序设计语言)