• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

为什么字符常量“a”和字符常量'a'是不同的两个东西?

丹青 2019-11-04 浏览量:5620
为什么字符常量“a”和字符常量'a'是不同的两个东西?可是实际表示意义都是一样的呀?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • “a”严格来说不是字符常量,是字符串常量。字符常量是单引号引起的一个字符,字符串常量是双引号引起的若干个字符(包括一个字符);其次,两者长度不同即所占内存空间不同,字符常量只占一个字节,而字符串处理至少占一个字节(字符结束标志);最后,字符常量相当于一个整型值,可以参加表达式的运算;字符串常量代表一个地址值(该字符串在内存中存放的位置)。字符常量可以赋值给字符变量,如"char b='a';"但不能把一个字符串常量赋给一个字符变量,同时也不能对字符串常量赋值。
    • 发布于 2019-11-05
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 形式上: 字符常量是单引号引起的一个字符;
    字符串常量是双引号引起的若干个字符;
    含义上: 字符常量相当于一个整型值,可以参加表达式的运算;
    字符串常量代表一个地址值(该字符串在内存中存放的位置);
    占内存大小:字符常量只占一个字节;
    字符串常量占若干个字节,(至少一个字符结束标志)
    • 发布于2019-11-18
    • 举报
    • 评论 0
    • 1
    • 0

  • 双引号是字符串,后面自带一个\0,也就是字符数量等于字符数量加1,单引号是字符也就是一个字节
    • 发布于2019-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 在一些编程语言中单引号和双引号包络的字符串都不是一样的东西,比如C\C++,双引号用于字符串,单引号用于单个字符,字符串实际是以'\0'为结尾的多个(可以是0个)字符数组,所以其实""也包括一个'\0'。从这点来说"a"和'a'它们的意义是不一样的。

    在其他一些语言中则不一定有这样的区分,比如javascrip,它只有字符串,这时"a"和'a'的意义就是一样的,这个还是需要结合语言特性来分析,不能一概而论。

    • 发布于2019-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 你说的实际意义只是你个人主观赋予的

    做一个很简单的实验,你设定一个变量H

    分别赋值

    H="a";

    printf H;

    H='a';

    printf H;

    你会得到两个不同的结果,第一个输出字母a,第二个是输出字母a的ASCⅡ表中的编码97


    • 发布于2019-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • “a”是一个字符串变量,而‘a’是个常量,二者类型不同
    • 发布于2019-11-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 是因为两者在内存中的位置是不一样的,所以是不同的东西,但是可以通过赋值来使两个表示一个东西
    • 发布于2019-12-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

为什么字符常量“a”和字符常量'a'是不同的两个东西?