我们常常用以下两种方式存放字符串:
char *st1="abcd";//字符串常量
str1[0] = 'x';//error
char str2[]="abcd";//字符数组
str2[0] = 'x';//ok
这两种有什么区别呢?
首先第一个是字符串常量,str1本质上是一个指针,存放的是字符串首元素的地址,所以不能对其修改。
而第二个是字符数组,str2是一个数组,存放的是一个个的字符,允许在初始化之后进行修改其中的值。
我们常常用以下两种方式存放字符串:
char *st1="abcd";//字符串常量
str1[0] = 'x';//error
char str2[]="abcd";//字符数组
str2[0] = 'x';//ok
这两种有什么区别呢?
首先第一个是字符串常量,str1本质上是一个指针,存放的是字符串首元素的地址,所以不能对其修改。
而第二个是字符数组,str2是一个数组,存放的是一个个的字符,允许在初始化之后进行修改其中的值。