为什么 sizeof() 运算符在 C 中为“a”和“a”提供不同的值?

吉瑞什

据我所知,一个字符常量,即“a”以 ASCII 格式存储,该格式在内部被视为整数,在“a”的情况下为 97,这就是为什么 sizeof('a') 在执行时返回 4 但当我使用 sizeof("a") 它返回 2。我还没有找到任何关于它的解释。

我的代码:

#include <stdio.h>
void main()
{
   int x,y;

   x = sizeof('a');
   y = sizeof("a");

   printf("%d\n",x);

   printf("%d",y);
}

这给出了输出:

4
2
火焰

'a'是一个整数。在大多数计算机上它的大小为 4。然而,它也可能是别的东西。2 在更专业的硬件上也很常见。

"a"是字符串文字。有两个字符:a\0它们每个的大小为 1,总共大小为 2。但是,当您尝试分配它时,您通常得到的是 aconst char*并且可能具有不同的大小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++中的sizeof()运算符是做什么的

来自分类Dev

C ++中的sizeof()运算符是做什么的

来自分类Dev

为什么在NOT操作的情况下C中的sizeof运算符给出不同的输出?

来自分类Dev

C ++中sizeof运算符的操作

来自分类Dev

C中sizeof运算符的实现

来自分类Dev

为什么sizeof运算符给出不同的输出

来自分类Dev

在C中的数组列上使用“ sizeof”运算符

来自分类Dev

sizeof运算符在C中如何工作?

来自分类Dev

为什么某些表达式的sizeof运算符工作方式不同?

来自分类Dev

为什么“ as”运算符在C#中不使用隐式转换运算符?

来自分类Dev

为什么C ++没有〜=和!=运算符?

来自分类Dev

什么是C / C ++中的“->”运算符?

来自分类Dev

什么是C / C ++中的“->”运算符?

来自分类Dev

C和C ++中sizeof()运算符的返回值

来自分类Dev

什么是C ++中的“ <?=”运算符?

来自分类Dev

运算符“”在C ++中做什么?

来自分类Dev

什么是C ++中的“ <?=“运算符?

来自分类Dev

将值直接传递给sizeof运算符时,为什么数据类型的大小不同?

来自分类Dev

为什么这个sizeof运算符给出错误?

来自分类Dev

sizeof运算符和多维表

来自分类Dev

#define指令中的sizeof运算符

来自分类Dev

C#中布尔和char数据类型的Marshal.SizeOf和sizeof运算符的相反行为

来自分类Dev

+ =运算符在提供的C#代码中做什么?

来自分类Dev

在C ++中的非POD类型上使用sizeof运算符是否安全?

来自分类Dev

“ sizeof(int)”中的“(int)”是类型转换运算符还是某些特殊情况参数?[C]

来自分类Dev

在C ++中的非POD类型上使用sizeof运算符是否安全?

来自分类Dev

对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

来自分类Dev

对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

来自分类Dev

为什么用点运算符的值在C ++中没有更改?

Related 相关文章

  1. 1

    C ++中的sizeof()运算符是做什么的

  2. 2

    C ++中的sizeof()运算符是做什么的

  3. 3

    为什么在NOT操作的情况下C中的sizeof运算符给出不同的输出?

  4. 4

    C ++中sizeof运算符的操作

  5. 5

    C中sizeof运算符的实现

  6. 6

    为什么sizeof运算符给出不同的输出

  7. 7

    在C中的数组列上使用“ sizeof”运算符

  8. 8

    sizeof运算符在C中如何工作?

  9. 9

    为什么某些表达式的sizeof运算符工作方式不同?

  10. 10

    为什么“ as”运算符在C#中不使用隐式转换运算符?

  11. 11

    为什么C ++没有〜=和!=运算符?

  12. 12

    什么是C / C ++中的“->”运算符?

  13. 13

    什么是C / C ++中的“->”运算符?

  14. 14

    C和C ++中sizeof()运算符的返回值

  15. 15

    什么是C ++中的“ <?=”运算符?

  16. 16

    运算符“”在C ++中做什么?

  17. 17

    什么是C ++中的“ <?=“运算符?

  18. 18

    将值直接传递给sizeof运算符时,为什么数据类型的大小不同?

  19. 19

    为什么这个sizeof运算符给出错误?

  20. 20

    sizeof运算符和多维表

  21. 21

    #define指令中的sizeof运算符

  22. 22

    C#中布尔和char数据类型的Marshal.SizeOf和sizeof运算符的相反行为

  23. 23

    + =运算符在提供的C#代码中做什么?

  24. 24

    在C ++中的非POD类型上使用sizeof运算符是否安全?

  25. 25

    “ sizeof(int)”中的“(int)”是类型转换运算符还是某些特殊情况参数?[C]

  26. 26

    在C ++中的非POD类型上使用sizeof运算符是否安全?

  27. 27

    对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

  28. 28

    对于负整数,为什么C和Ruby之间的模运算符(%)的行为不同?

  29. 29

    为什么用点运算符的值在C ++中没有更改?

热门标签

归档