• 字符串常量


    字符串常量

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

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

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

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

    比如字符串“a”,看起来它只有1个字符,但是结尾有 '' ,所以这个字符串在内存中占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'; //推荐这种写法,系统会自动加一个字符 '' ,作为该字符串的结束标识符。

      定义后初始化:

      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 ", a);  

        system("pause");

        return 0;

      }

      运行结果如图:

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

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

    2 通过字符指针存储

      char *p = "Hello World";

  • 相关阅读:
    python中使用easygui
    SQL Server: Windows Firewall with Advanced Security
    xxx while the managed IDbConnection interface was being used: Login failed for user xxx
    忽略PyCharm4中特定的警告提示信息
    C#如何生成一个随机种子for Random?
    PSSecurityException之PowerShell权限设置
    如何用CSS进行开发
    为什么不建议用table进行布局
    Batch脚本获取日期SET YEAR=%date:~10,4%
    Java实现邮箱找回密码
  • 原文地址:https://www.cnblogs.com/fengxing999/p/10266386.html
Copyright © 2020-2023  润新知