char *str = "hello";
char arr[] = "hello";
以上定义中str和arr差别很大,str是一个初值指向"hello"字符串常量的指针,这个指针可以指向其他地址,但是不能通过指针修改字符串的值。访问后会出现egmentation fault (core dumped)错误。
arr是一个刚好容纳"hello"和’\0’的数组,可以通过数组的首地址来访问和修改数组元素。
本文深入探讨了C语言中字符指针(str)与字符数组(arr)的本质区别。指针str初始化指向字符串常量,不可修改其值,而数组arr可直接修改。了解这些差异对于有效使用C语言进行字符串操作至关重要。
char *str = "hello";
char arr[] = "hello";
以上定义中str和arr差别很大,str是一个初值指向"hello"字符串常量的指针,这个指针可以指向其他地址,但是不能通过指针修改字符串的值。访问后会出现egmentation fault (core dumped)错误。
arr是一个刚好容纳"hello"和’\0’的数组,可以通过数组的首地址来访问和修改数组元素。
995
7093
5284

被折叠的 条评论
为什么被折叠?