在C语言中,对字符串的操作主要有两种方式,一是使用字符数组,char str[];二是使用字符指针。那么二者有什么区别呢?下面将分述二者的使用,最后进行比较。
一、字符数组
使用char str[]定义一个字符数组str,中括号内可以写上数字表示数组大小,也可以不写。如果不写数字,则必须为字符数组提供初始值,以便编译器进行内存分配。
可以使用字符串字面值(string literal)来初始化字符数组,也可使用字符字面值(character literal)初始化,如:
char str1[10]="Hello";
char str2[]="World";
char str3[]={'H','e','l','l','o'};
只能对字符数组元素的赋值,而不能用赋值语句对整个数组赋值,如:
char str4[10];
str4={'H','e','l','l','o'}; // 错误
str4="Hello"; // 错误
str4[0]='H';str4[1]='e';str4[2]='l';str4[3]='l';str4[4]='o'; // 正确