正确获得字符串“变量”的方法:
- char str[] = {"abc"};
- char str[] = "abc";
- char str[] = {'a','b','c','\0'};
- char *str =(char *)malloc(sizeof(char)*4);
strcpy(str,"abc");
注意,以下两种声明并初始化的方式是错误的:
- char str[] = {'a','b','c'};
因为 str 将被认为是一个长度为 3 字节的字符数组,所以没有预留给结尾符 \0 的空间,这样很多对字符串的操作都将出错。 - 上面正确的声明的变量使用 = "abc" 进行赋值,C 语言中没有真正的字符串类型,所以这种赋值方式事实上是将 "abc" 在内存的常量区的首地址赋值给前面的变量,这明显是错误的。
此外,char *str ="abc",这种方式得到的字符串是常量,不可修改,原因见上面第二条。
如有错误,还请斧正,可以发送邮件到我的邮箱 [email protected]。