【问题标题】:What happens when we convert string literal to integer in C? [duplicate]当我们在 C 中将字符串文字转换为整数时会发生什么? [复制]
【发布时间】:2016-04-05 07:59:18
【问题描述】:

考虑一个 C 程序:

#include <stdio.h>

int main (void)
{
  int x = 'a';
  printf("%d", x);
}

根据 ASCII 值表,这里的输出是 97

但在下面的例子中:

#include <stdio.h>

int main(void)
{
  int x ='aa';
  printf("%d", x);
}

输出为24929

谁能解释一下文字是如何转换成这个整数值的?

【问题讨论】:

标签: c string literals string-literals


【解决方案1】:

int x ='aa';

这是有效的,但 x 的值是实现定义的。顺便说一句,这不是字符串文字。字符串文字将是这个“aa”。

【讨论】:

  • 那我们怎么称呼它,实际上我找不到名字所以我写了字符串文字。
  • @smartnerd 可能是多字符常量
【解决方案2】:

您使用八位字节为 int 分配了一个值:'a'0x61

所以写int x = 'aa' 就像写int x = 0x6161

编辑:但不要这样写。只需写int x = 0x6161int x = 24929

【讨论】:

    猜你喜欢
    • 2014-04-12
    • 2011-10-31
    • 1970-01-01
    • 2021-05-09
    • 2023-04-08
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多