C 语言字符串“变量”的声明并初始化的几种方式

正确获得字符串“变量”的方法:

  1. char str[] = {"abc"};
  2. char str[] = "abc";
  3. char str[] = {'a','b','c','\0'};
  4. char *str =(char *)malloc(sizeof(char)*4);
    strcpy(str,"abc");

注意,以下两种声明并初始化的方式是错误的:

  1. char str[] = {'a','b','c'};
    因为 str 将被认为是一个长度为 3 字节的字符数组,所以没有预留给结尾符 \0 的空间,这样很多对字符串的操作都将出错。
  2. 上面正确的声明的变量使用 = "abc" 进行赋值,C 语言中没有真正的字符串类型,所以这种赋值方式事实上是将 "abc" 在内存的常量区的首地址赋值给前面的变量,这明显是错误的。

此外,char *str ="abc",这种方式得到的字符串是常量,不可修改,原因见上面第二条。

如有错误,还请斧正,可以发送邮件到我的邮箱 [email protected]

猜你喜欢

转载自www.cnblogs.com/JSSSILVY/p/13167461.html