fengxing999

字符串常量

字符串常量

字符常量 : 由一对单引号括起来的单个字符,如\'a\', \'B\'

字符串常量: 由一对双引号括起来的多个字符的序列,如"a",“I Love u”

 

字符串在本质上是多个字符组成的字符数组,C语言规定,在每个字符串常量的结尾,系统会自动加一个字符 \'\0\' ,作为该字符串的结束标识符,根据是否是 \'\0\' 判断字符串是否结束。

PS: \'\0\' 是系统自动加上的,不是人为添加的

比如字符串“a”,看起来它只有1个字符,但是结尾有 \'\0\' ,所以这个字符串在内存中占2个字节。

int main(void)
{
  printf("%d \x20", sizeof(" ")); //空格占1个字符,所以字符串所占长度为2
  printf("%d \x20", sizeof("a")); //a占1个字符,所以字符串所占长度为2
  printf("%d \x20", sizeof("你好")); //每个中文占2个字符,所以字符串所占长度为5
  return 0;
}

PS: 操作符sizeof是取得字符串所占内存空间的总长度,strlen是取得字符串的有效长度

 

在C语言中,字符串怎么存储

1 通过字符数组存储

 ①字符数组的定义:

  char name[7];

 ②字符数组的初始化:

  定义时初始化:char a[] = “Richard\'; //推荐这种写法,系统会自动加一个字符 \'\0\' ,作为该字符串的结束标识符。

  定义后初始化:

  int main(void)

  {
    char a[8]; //先定义数组的话,数组a的大小必须先给出

    a[0] = \'R\'; a[1] = \'i\'; a[2] = \'c\'; a[3] = \'h\'; a[4] = \'a\'; a[5] = \'r\'; a[6] = \'d\';

    printf("a = %s\n", a);  

    system("pause");

    return 0;

  }

  运行结果如图:

   //系统只要没遇到 \'\0\',就认为该字符串没有结束,直到遇到 \'\0\'为止。

PS: 前面提到系统会在字符串的最后自动添加结束标识符 \'\0\' ,但是这样给字符数组一个个赋值时,系统不会自动添加 \'\0\',必须手动添加。  

2 通过字符指针存储

  char *p = "Hello World";

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-05-16
  • 2021-12-11
  • 2022-01-16
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
猜你喜欢
  • 2021-12-26
  • 2021-12-10
  • 2021-09-03
  • 2022-01-08
相关资源
相似解决方案