在C中将字符串文字转换为整数时会发生什么?

时间:2016-04-05 07:59:19

标签: c string literals string-literals

考虑一个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

有人可以解释文字是如何转换为这个整数值的吗?

2 个答案:

答案 0 :(得分:3)

  

int x ='aa';

这是有效的,但SELECT * FROM table where primaryuniquefield = '$variable2' and somenotuniquefield like '%\"$variable1\"%'"; 的值是实现定义的。顺便说一句,这不是一个字符串文字。字符串文字就是这个“aa”。

答案 1 :(得分:0)

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

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

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